"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > proto와 constructor.prototype의 차이점은 무엇입니까?

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

2024년 11월 19일에 게시됨
검색:382

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

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
  }
}
릴리스 선언문 이 글은 1729476436에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3