현재 해결 방법이 더 간단한 해결책이 있는지 궁금합니다.상위 함수에서 재정의 된 변수에 액세스하십시오.
자바 스크립트 예 :
var data= {
'key1':'value1'
};
$.each(data,function foo() {
alert(this); //alerts 'value1'
$('#element').click(function()) {
alert(this); //alerts something else
}
});
해결하는 방법이 될 것이다 :
var data= {
'key1':'value1'
};
$.each(data,function foo() {
alert(this); //alerts 'value1'
var this_original=this;
$('#element').click(function()) {
alert(this_original); //alerts 'value1'
}
});
이 문제를 해결하지만, 매우 깨끗하지 않습니다. 자식 함수의 원래 내부 값을 얻기위한 멋진 Javascript/jQuery 메서드가 있는지 궁금합니다. 같은 뭔가 : parentFunction.this
코드에서 'var that = this;'에 익숙해 져야 할 것입니다. 더 자세한 설명은 뒤따라야 할 것이지만 "this"는 코드가 현재 실행되고있는 객체에 대한 참조입니다. 일단 당신이 클릭 기능에 들어가면, 당신은 다른 맥락으로 이동했고, "이것"은 함께 간다. – lsuarez
jQuery "proxy"함수가 어떤 식 으로든 도움이 될까요? – Kranu
예. 실제로 복잡성 계층이 필요하지 않으면 권장하지 않습니다. 의미는 검색 할 컨텍스트가있는 객체의 멤버, 즉'data'에서'onClick() '이라는 멤버 함수를 선언하는 것과 같이 이벤트 핸들러를 연결해야한다는 것입니다. – lsuarez