오브젝트 프로토 타입 내에 저장된 이벤트 핸들러에서 this
자바 스크립트 참조를 보존하는 올바른 방법은 무엇입니까? 나는 '_this'또는 'that'과 같은 임시 변수 값을 만들지 말고 jQuery와 같은 프레임 워크를 사용할 수 없습니다. 나는 많은 사람들이 'bind'함수를 사용하는 것에 대해 이야기했지만 주어진 시나리오에서 그것을 구현하는 방법을 알지 못했다.자바 프로토 타입 이벤트 핸들러에서 'this'참조 유지
var Example = function(foo,bar){
this.foo = foo;
this.bar = bar;
};
Example.prototype.SetEvent = function(){
this.bar.onclick = this.ClickEvent;
};
Example.prototype.ClickEvent = function(){
console.log(this.foo); // logs undefined because 'this' is really 'this.bar'
};
"*"(this는 "Crockford")에 대한 참조를 만듭니다. 나는 "인스턴스"(라 스테파노 프), 또는 "나"(ExtJS)를 선호합니다. –
사실, 어떻게 이름을 붙이더라도'this' 참조를 만드는 것이 싫어요. 그러나 동의하면, '그'가 최고의 이름이 아니다. –
필자는 'self'를 사용하지만 최근에는 WebWorkers의 최상위 속성과 이름 충돌이 있음을 발견했습니다. 당신은 같은 이름을 가질 수는 없지만, 그것은 혼란 스럽습니다. 또한, 나는 'this'와 상당히 반대되는 이름을 발견했습니다. – Matt