함수의 JavaScript 비동기 실행으로 인한 가변 변경에 대한 솔루션에 대한 간단한 분석
for (var i = 0; i <3; i ++) {settimeout (function () {console.log (i)}, 0);} 콘솔 출력 : 333이 방법은 방법이 실행될 때 For 루프가 실행되었고 실행 될 때마다 1-2-3 대신 3이기 때문입니다. 현재 즉시 실행 함수를 사용 하여이 문제를 해결하기 위해 타이머를 호출 할 각 루프의 변수 사본을 만들 수 있습니다.
for (var i = 0; i <3; i ++) {settimeout ((함수 () {var _i = i; return function () {console.log (_i)};}) (), 0); } 콘솔 출력 : 123JavaScript 함수의 비동기 실행으로 인한 가변 변경을 해결하는 문제에 대한 위의 간단한 분석은 내가 공유하는 모든 컨텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.