JavaScript 클로저와 익명 함수
JavaScript에서는 내부 함수가 외부 범위의 변수에 액세스할 수 있을 때 클로저가 발생합니다. 외부 함수의 실행이 완료되었습니다. JavaScript의 많은 함수는 클로저로 간주되지만 이론적으로는 특정 하위 집합만 특별한 관심을 갖습니다.
사례 1: 친구의 코드
<code class="js">(function f() { var i2 = i; setTimeout(function g() { console.log(i2); }, 1000); })();</code>
사례 2: 코드
<code class="js">setTimeout((function f(i2) { return function g() { console.log(i2); }; })(i), 1000);</code>
결론
따라서 제공된 두 솔루션 모두에서 내부 함수 g는 클로저이지만 클로저는 아닙니다. 바깥쪽. 이는 동일한 결과를 얻더라도 서로 다른 메커니즘을 통해 달성된다는 것을 보여줍니다.
위 내용은 JavaScript에서는 내부 함수가 항상 클로저인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!