중첩된 Javascript 함수의 "this" 포인터 동작
객체의 메서드 내에서 중첩된 함수를 정의할 때, "this" 포인터는 이 컨텍스트에서 작동합니다. 다음 코드 조각을 고려하세요.
<code class="javascript">var std_obj = { options: { rows: 0, cols: 0 }, activeEffect: "none", displayMe: function () { // "this" refers to std_obj if (this.activeEffect == "fade") { } var doSomeEffects = function () { // "this" refers to the window object if (this.activeEffect == "fade") { } } doSomeEffects(); } }; std_obj.displayMe();</code>
이 시나리오에서 "this" 포인터는 중첩된 함수 "doSomeEffects()" 내의 "window" 개체를 참조합니다. "std_obj" 개체. 이 동작을 설명하려면 Javascript의 "this" 포인터의 특성을 조사해야 합니다.
Javascript에서 "this" 포인터는 함수가 호출되는 방식에 따라 결정됩니다. 세 가지 기본 메서드가 있습니다.
중첩 함수 시나리오에서 "doSomeEffects()" 함수는 "this" 개체를 지정하지 않고 호출됩니다. 결과적으로 "this" 포인터는 기본적으로 전역 개체(일반적으로 "window" 개체)로 설정됩니다. "this"가 원하는 개체를 참조하도록 하려면 "std_obj.displayMe()" 메서드에서 "doSomeEffects()"에 대한 "this" 포인터를 명시적으로 설정해야 합니다.
"this"를 제어하는 원칙을 이해함으로써 " 포인터를 사용하면 개발자는 예상치 못한 동작을 방지하고 모범 사례를 준수하는 코드를 작성할 수 있습니다.
위 내용은 중첩된 JavaScript 함수에서 'this' 포인터는 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!