어떻게 호출하는 창입니다.init 에서는 글로벌 init 기능을 일으키지 않는 무한 재귀?
-
21-12-2019 - |
문제
그래서,어떻게 이 코드가 없는 무한 루프?
window.init = function(){
console.log("window.init")
}
function init(){
console.log("init")
window.init();
}
init();
jsfiddle: http://jsfiddle.net/FAt6C/
해결책
귀하의 코드를 실행하도록 설정에서 부하십시오(상단 왼쪽),이는 기본적으로 알려줍 jsFiddle 을 감싸는 이 함수 코드에서는 다음 설정으로 onload 처리기입니다. function init()
실제로 선언의 범위에서는 이벤트를 처리기지 않습니다.
지 않을 때 당신은 포장 코드,하지만,함수의 선언은 기본적으로 실행 설정의 일환으로 현재 범위기 전에 다른 재료에서는 범위(ECMA-262,§10.5).그래서 init
에 이미 존재하기 전에 당신은 말 window.init =...
, 고는 할당 문을 덮어쓰고 깨 init
.의미를 설정하는 경우 포장을"아 포장"(위치에 관계없이),볼만 해야"창을 엽니다.init"니다.
제휴하지 않습니다 StackOverflow