proto와 constructor.prototype의 차이점
JavaScript 객체로 작업할 때 proto 및 constructor.prototype이 중요합니다. proto는 객체의 직접적인 프로토타입을 가리키는 반면, constructor.prototype은 객체를 생성한 함수가 생성된 객체를 참조합니다. 이러한 구별은 프로토타입 체인을 순회할 때 다른 결과로 이어질 수 있습니다.
프로토타입 체인 순회
제공된 코드에서 볼 수 있듯이 proto를 사용할 수 있습니다. 객체의 프로토타입 체인을 탐색합니다. 예제에서 proto는 Gadget 함수의 인스턴스인 newtoy의 프로토타입 체인을 탐색하는 데 사용됩니다. 각 후속 proto 호출은 체인에서 한 수준 올라가며 Object.prototype 외에는 프로토타입이 없기 때문에 결국 null을 반환합니다.
그러나 constructor.prototype.constructor.prototype.constructor.prototype인 경우 이 사용되면 프로토타입 체인도 올라가지만 Gadget 생성자가 있었던 프로토타입을 참조하므로 결국 초기 Gadget 함수를 반환합니다. 생성되었습니다.
Internet Explorer에서 Null 검사
Internet Explorer에서는 proto 속성을 사용할 수 없으며 다음을 사용하여 프로토타입 체인을 탐색할 수 있습니다. Function 객체의 프로토타입 getter입니다. 아래 코드는 null을 확인하는 방법을 보여줍니다.
function checkNull(obj) { while (obj = obj.prototype) { // Check if the prototype is null } }
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3