2016-10-12 4 views
-2

어떻게 'this'가 세부 사항과 함께 자바 스크립트에서 작동하는지 이해하게되었습니다.'this'는 객체 생성자 함수에

w3school에서는 어떻게 작동하는지 설명합니다. (http://www.w3schools.com/js/js_object_definition.asp)는

소유 "기능에 사용 된이 값은, 그 목적은" "함수.

목적에서 사용이 값은 오브젝트 자체이다."

내 이해에서 객체 생성자는 객체가 아니라 함수이며, 생성자 내에서 위의 'this'에 해당하는 정의에 따르면이 생성자를 소유 한 객체를 참조해야합니다 (전체 크기, 즉 윈도우 객체).

그러나 'this'는 객체 생성자 함수를 참조합니다. 왜 그런가요?

function person(first, last, age) { 
    this.firstName = first; 
    this.lastName = last; 
    this.age = age;} 

스택 오버플로에 대한 다른 예제를 살펴 보았으나이 개념을 자세히 설명하지는 않습니다.

+5

W3 학교에 의존하지 마십시오. 이 경우 두 명령문 모두 잘못되었거나 오도 된 명령입니다. 특히 두 번째 명령문이 잘못되었습니다. 특히, JS에서는 "소유"의 개념이 없습니다. 생성자의 'this'는 생성되는 객체를 참조하는 것은 물론입니다. –

+0

나는 그것이 사실이라고 생각하지 않는다. Maxim Egorushkin이 답변 바로 아래에 못을 박 았던 것 같습니다 – peakersky

+0

@Cerbrus 중복 IMO가 아니므로, 당신이 말하는 질문은 훨씬 일반적입니다. 반면에 이것은 매우 구체적입니다. –

답변

0

new으로 호출 된 생성자 함수에서 this은 생성되는 개체를 나타냅니다.

+0

감사! 'this'는 오히려 객체 생성자가 호출 될 때 사용됩니다! 그렇게 많은 의미가 있습니다. – peakersky

+0

@peakersky 중요한 비트 _ 오브젝트 생성자가 ** new ** _로 호출 될 때. –

+0

선명하게 주셔서 감사합니다! :) – peakersky