proto와 constructor.prototype
객체의 proto 속성의 차이점 공유 속성과 메서드가 포함된 프로토타입 개체를 참조합니다. 대조적으로 constructor.prototype은 객체 생성자 함수의 프로토타입 속성을 가리킵니다.
다음 예에서는 차이점을 보여줍니다.
function Gadget(name, color) {
this.name = name;
this.color = color;
}
Gadget.prototype.rating = 3;
var newtoy = new Gadget("webcam", "black");
이 경우 newtoy.__proto__는 속성 등급이 있는 Gadget.prototype을 가리키는 반면 newtoy.constructor.prototype은 Gadget도 가리킵니다. .원기. 그러나 newtoy.constructor.prototype.constructor.prototype.constructor.prototype은 Object.prototype 외에 추가 프로토타입이 없기 때문에 null을 반환합니다.
이는 proto가 프로토타입 객체이고 constructor.prototype은 프로토타입 체인을 따릅니다. constructor.prototype에 여러 번 액세스하면 최상위 Object.prototype에 도달할 때까지 프로토타입 체인을 순회합니다.
Internet Explorer에는 __proto__ 속성이 없습니다. 대신 [[Prototype]] 속성을 사용하여 객체의 프로토타입에 액세스할 수 있습니다. 그러나 표준 JavaScript 코드에서는 이 속성에 액세스할 수 없습니다.
프로토타입 개체를 참조하면 JavaScript의 상속 계층 구조를 이해하는 데 도움이 되며 관련 개체 간에 속성과 메서드를 공유하는 메커니즘을 제공할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3