이 HTML 고려 객체 :범위
<p>Click me</p>
내가 각 p
에 대한 클릭 핸들러 객체를 작성 좋아하지만, 문제로 실행하는 것을 나의 클릭 핸들러 함수가 수 찾을 수 없습니다.
이 코드는 않습니다 하지 일 :
(function(){
var self = this;
$("p").each(function(){
$(this).click(self.myFunction);
});
self.myFunction = function(){ alert("myFunction"); }
})();
나는 함수에서 클릭 처리기 할당을 포장 때 는 않습니다 일 :
(function(){
var self = this;
$("p").each(function(){
$(this).click(function(){ self.myFunction(); });
});
self.myFunction = function(){ alert("myFunction"); }
})();
질문 :하지 않는 이유 $(this).click(self.myFunction)
가 작동하지만 $(this).click(function(){ self.myFunction(); })
이 맞습니까?
편집 :
$("p").click(myFunction);
function myFunction(){ alert("myFunction"); }
이뿐만 아니라 실패 안 : 이 작업 않습니다 다음 코드?
P. 함수의 위치를 이동하여 함수를 래핑 할 필요없이 내 개체가 작동하지 있어요.
(function(){
var self = this;
self.myFunction = function(){ alert("myFunction"); }
$("p").each(function(){
$(this).click(self.myFunction);
});
})();
문제는 파서와 관련이 있습니다.
자바 스크립트 코드 구문 분석 및 평가 순서를 이해해야합니다. 다음을보십시오 : http://stackoverflow.com/questions/3887408/javascript-function-declaration-and-evaluation-order/3887590#3887590 – slebetman
@slebetman +1 다른 질문에 답하십시오. 감사. –