JavaScript“This”의 컨텍스트를 변경할 수 있습니까?
-
20-08-2019 - |
문제
var UI$Contract$ddlForm_change = function() {
//'this' is currently the drop down that fires the event
// My question is can I change the context so "this" represents another object?
this = SomeObject;
// then call methods on the new "this"
this.someMethod(someParam);
};
이게 가능해?
해결책
아니요, 불가능합니다.
지정된 값의 메소드를 호출 할 수 있습니다. 이것 (사용 method.apply()
/method.call()
)하지만 키워드를 다시 할당 할 수 없습니다. this
.
다른 팁
당신은 무엇을 바꿀 수 없습니다 this
참조 내부에 함수.
그러나 할 수 있습니다 전화 특정 컨텍스트의 함수 - 따라서 this
사용하여 특정 객체를 나타냅니다 call
또는 apply
.
JP가 정확합니다. 이건 불가능 해. JavaScript 언어 사양 문서 ECMA-262를 참조하십시오. 여기에서 표준을 다운로드 할 수 있습니다.
http://www.ecma-international.org/publications/standards/ecma-262.htm
파일은 ECMA-262.pdf이며 39 페이지, 섹션 10.1.7입니다.
10.1.7이
모든 활성 실행 컨텍스트와 관련된이 값이 있습니다. 이 값은 발신자와 실행되는 코드 유형에 따라 다르며 제어가 실행 컨텍스트에 들어가면 결정됩니다. 실행 컨텍스트와 관련된이 값은 불변입니다.
"불변"에 주목하십시오. 즉, 변경할 수 없습니다.
제휴하지 않습니다 StackOverflow