자바 스크립트에서 상속에 대해 배우 나는 가상의 상속을 발견했습니다. 여기에 내가 사용하고이 기능 생성자는 다음과 같습니다pseudoclassical 상속을 사용하여 프로토 타입 속성 설정
function MySuperConstructor() {
}
MySuperConstructor.prototype = {
constructor: MySuperConstructor,
myMethod: function() {
console.log("method called");
}
}
function MyConstructor() {
}
내가 혼란 스러워요 것은이 두 방식의 차이입니다
:
MyConstructor.prototype = Object.create(MySuperConstructor.prototype);
및
MyConstructor.prototype = MySuperConstructor;
어떤 차이가 있는가가 ?
두 번째 것은 단순히 완전히 잘못되었습니다. – Bergi
두 번째 것을 어디서 보았습니까? 나는 Bergi와 동의한다. 하나의 유스 케이스를 보지 마라. Child.prototpye = Parent.prototpe를 상속으로 설정한다고하더라도 잘못된 것입니다. Child가 Dog 일 수 있고 Parent가 Animal 일 경우, Dog는 Animal (개는 Animal)과 같지만 Animal은 Dog가 아닙니다. 예를 들어; 당신은 Dog.prototype.bark를 정의 할 것이고 Fish는 Animal에서 상속을 받고 Fish는 껍질을 벗길 수 있습니다. 나는 Object.create를 고집 할 것이다. 자세한 내용은이 대답을 볼 수 있습니다 : http://stackoverflow.com/a/16063711/1641941 – HMR
죄송합니다. 두 번째 구문에서 생성자 앞에 새 키워드가 누락되었습니다 ... 새 구문을 사용하면 두 문장이 동일할까요? – Zed