2013-08-30 3 views
0

을 기억합니다. 브라우저는 myFunc이 존재하지 않음을 다시보고올바른 구문은 내가 지금처럼 자기 envoking 기능이 자동 호출 기능

$(window).resize(function() { 
    myFunc(); 
}); 

: 그러므로 나는이 시도했다. resize 함수가 나타나기 전에 위의 순서로 정렬을 시도했지만 여전히 작동하지 않습니다.

누군가가 내 방식으로 (proabably 고통스럽게 명백한) 오류를 지적 할 수하세요?

답변

3

사용한 한 구문은 단지 myFunc 함수 자체 내에서 볼 수있는 이름 myFunc 수 있습니다. named function expression이라고합니다.

(function myFunc() { 
    // myFunc can be seen and used here 
})(); 

// but not here. 

function myFunc() { 
    alert("do something cool"); 
} 

myFunc(); 

$(window).resize(function() { 
    myFunc(); 
}); 
+0

아! 그래서 익명의 자체 실행 기능으로 코딩했습니다. 지금 많은 의미가 있습니다. – Sheixt

1

함수는 그러나 잘 수행되어야 arguments.callee 통해 자체를 참조 할 수있다.

window.onresize = arguments.callee; 

이렇게하면됩니다. 당신이 jQuery를 너트있어 그러나 경우 (주의 : I am not)를이 작성하는 유혹 될 수 있습니다 때문에 크기 조정 arguments.callee 참조를 호출되는 시점에서, 무한 루프를

$(window).resize(function() {arguments.callee();}); 

이 끔찍하게 실패와 원인 기능 자체.

편집 : 추가 고려시 무한 루프가 발생하지 않습니다. 스택 오버플로 오류로 인해 잠시 후 오류가 발생합니다. 내가 게시하도록하겠습니다 위치를 고려하고, 그 실현했습니다해야 : P