함수

2012-09-14 2 views
0

그것은 어떤 차이가 않습니다함수

function a(){ 
//... 
} 

setInterval(a, 1000); 

I 번째 경우에 파라미터를 전달할 수 있다는 명백한의 제외

setInterval(function(){ 
a(); 
}, 1000); 

대.

반드시 setInterval 일 필요는 없습니다. 함수 핸들러를 받아 들일 수있는 함수.

답변

2

익명 함수를 전달하면 someObject.a()을 호출하고 this을 보존 할 수도 있습니다. 그 thiswindow가되도록

당신이 setTimeout(someObject.a, 300)을 작성하는 경우

a() 방법은 전역 객체의 컨텍스트에서 호출됩니다. thissomeObject이 될 것으로 예상되면 중단됩니다.

setTimeout(function() { someObject.a(); }, 300)으로 작성하면 a()이 올바른 컨텍스트에서 호출됩니다.

+0

'this'는 유지할 수있을뿐만 아니라 함수 호출을위한 문자열을 하드 코딩하지 않고도 매개 변수를 전달할 수 있습니다. – Ian

+0

@ianpgall : 예, OP가 이미 질문에 대답했습니다. – SLaks

+0

@SLaks jeez, 나는 그것을 보지 못했다고 믿을 수 없다. – Ian