javascript - 답변: 인스턴스 객체가 생성자를 호출할 때 생성자에서 이것이 의미하는 바는 무엇입니까?
ringa_lee
ringa_lee 2017-07-05 10:39:35
0
1
823

이 문제는 실제로 jQuery 소스 코드를 분석할 때 var ret = jQuery.merge(this.constructor(), elems );가 사용되는 것을 보았는데, this.constructor()는 init 메소드에 의해 생성된 빈 인스턴스 객체를 반환합니다. 그래서 그 방향이 헷갈립니다.
다음은 테스트 코드입니다.

으아악

여기서 constructor()를 직접 호출하면 왜 this의 포인터가 바뀌고 자동으로 새 객체가 생성되나요? constructor() 메소드의 내부 구현이 이에 영향을 줍니까?

ringa_lee
ringa_lee

ringa_lee

모든 응답(1)
某草草

이것과 constructor()方法的内部实现没有什么关系,其实就是函数内this指向的问题。
当函数作为对象的属性调用的时候,this指向这个对象;
当函数直接调用的时候,在非严格模式下,this指向window
p1.constructor指向的就是Person函数,当调用p1.constructor();时,Person是作为p1的属性调用的,所以this指向p1;当调用var p2 = p1.constructor;p2();时,其实就相当于直接调用Person();,所以this指向window.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿