함수 객체의 동작을 보았습니다. 프로토 타입과 비슷하지만 다른 방법을 사용합니다. 서브 클래스의 새로운 인스턴스 this.inherit 방법 이루어진다자바 스크립트 함수 객체의 상속 메소드 동작
var Car = function() {
this.foo = 'shiny';
}
var Rover = function() {
this.inherit = Car;
this.inherit();
}
var Mini = function() {
this.inherit = Car;
this.inherit();
}
부모의 속성들 및 방법은 서브 클래스에 사용할 수 있도록, 자신의 상위 클래스를 호출하는 효과를 갖는다.
var myRover = new Rover();
var myMini = new Mini();
myMini.foo = 'rusty';
console.log(myRover.foo, myMini.foo); // displays "shiny" & "rusty" respectively
모질라와 MSDN을 살펴 보았지만 어디에서 문서를 찾을 수없는 것 같습니다. 누구든지이 행동과 그 이상의 문서화에 이름을 붙일 수 있습니까?
메쏘드 이름을 편집하여 더 이해하기 쉽도록했습니다. subClass 메서드는 상속 된 속성을 반환합니다. "apply"메소드를 사용하여 세 번째 유형의 상속을 사용하기 때문에이 게시물은 재미있어 보입니다. – gawpertron
@ gawpertron : 기본적으로 내가 말하고자하는 것은 당신이 실제로 상속을 받고 있지 않다는 것입니다. 당신은'myClunction' (또는 무엇이든)이라는 'subClass' 객체에 메소드가있을 것이라고 간단히 말하고 있습니다. 이'myFunction'는'superClass' 함수 안에서 스크립트를 실행합니다. 'superClass' 함수의'this' 키워드는 호출자를 참조합니다.이 경우 호출자는'subClass' 메소드가 될 것입니다. – treeface
기능을 제거했습니다.이제 "inheritFrom", "inherit"또는 "monkeys"라는 메서드를 "new"키워드를 사용하는 것과 동일한 효과를 가지지 만 하위 클래스에 속성과 메서드를 추가하는 메서드를 호출하면 아무런 차이가 없다는 것을 알 수 있습니다. – gawpertron