자바 스크립트 전문가, 여기 당신을위한 퍼즐은? 그렇게 같았다 경우이상한 자바 스크립트 프로토 타입 상속
나는이 이해할 수 :
는function aNext(){}
function bNext(){}
aNext.prototype = new bNext();
a = new aNext();
console.log(a instanceof bNext);
..하지만 프로토 타입으로 나에게 매우 이상한 것 같다. 당신은 웹 개발자 책 전문 자바 스크립트에서 찾을 수 위의 프로토 타입 코드의 실제 응용 프로그램 (6 장, 마지막 페이지).
편집 : 감사 블렌더,하지만 여기에 각각 새로운 수수께끼를 제공 : 을 지금 우리는 그들이 instanceof를 서로있는 하나의 동일한 개체에서 상속 (하지만 그들은 완전히 다른)되는 두 객체가있는 경우!
function Horse(){} //class chain can be very long
function Pig(){}
Horse.prototype = Object.prototype;
Pig.prototype = Object.prototype;
a = new Pig();
console.log(a instanceof Horse); //true!
우리가 문제를 해결할 수있는 방법
? 돼지가 모두 동물 (과거에 동일한 프로토 타입을 가짐) 인 경우 돼지가 말이 아니라고 어떻게 결정할 수 있습니까? the MDN 가입일
당신이 뭘하려는거야? – Blender
당신의 말과 돼지 생성자가 동일한 프로토 타입을 가지고 '는이'의 인스턴스 말 왜 그게 그렇게. Object.prototype 대신 'new Object()'를 사용해야합니다! –