>웹 프론트엔드 >JS 튜토리얼 >proto와 constructor.prototype의 차이점은 무엇입니까?

proto와 constructor.prototype의 차이점은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-21 10:12:30440검색

What's the Difference Between proto and constructor.prototype?

proto와 constructor.prototype

JavaScript 객체로 작업할 때 proto의 차이점을 이해하세요. >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 검사

proto

속성을 ​​사용할 수 없는 Internet Explorer에서는 Function 객체의 프로토타입 getter를 사용하여 프로토타입 체인을 탐색할 수 있습니다. 아래 코드는 null을 확인하는 방법을 보여줍니다.
function checkNull(obj) {
  while (obj = obj.prototype) {
    // Check if the prototype is null
  }
}

위 내용은 proto와 constructor.prototype의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.