XBL에 대해 말하는 것은 자바 스크립트에 대해 정확히 말하는 것이 아닙니다. 그래서 this one과 관련된이 질문을 만들지 만, XBL에 관해서는 루트 Javascript 코드의 작성자는 아니지만 바인딩 내부의 메서드와 이벤트 핸들러에 대해서만 설명합니다.XBL에서 javascript의 "this"오류를 피하기위한 최선의 방법
- 어떤 경우에는
의 this
키워드는 내가가 기대하는 오브젝트를 참조하지 않을 수 있습니다. (최근의 예 : 이러한 종류의 실수를 방지하기 위해 가장 좋은 방법을 무엇 in an key event, in my XBL)
지금은
, 난 항상 사용하고있어 getElementById
(또는 jQuery를에서 $.fn
), 그러나 나는 그것이를인지 확실하지 않다 가장 좋은 방법
--update
조금 자세한 내용 :. XBL method있는 유일한 방법은 내
"this"를 사용하지 않고 Xul 파일 (GUI 설명 파일)에 정의 된 요소에 액세스하려면 getElementById를 사용하십시오. 그러면 코드를 재사용 할 수 없으므로, 대체물을 찾고 있습니다.
'bind'는 ECMA 스크립트 5에 내장되어, 새로운'strict' 모드'이 많이 있습니다 '문제가 빠르다. –
답변을 주셔서 감사합니다. 귀하의 예에서 "자기"로 사용할 "막대"가 있지만 [XBL 방법] (https://developer.mozilla.org/en/XUL_Tutorial:Adding_Methods_to_XBL-defined_Elements) 내에서 유일한 방법은 [Xul] (https://developer.mozilla.org/en/XUL) 파일 (GUI 설명 파일)에 정의 된 요소에 액세스하려면 getElementById가 있어야하며 코드를 재사용 할 수 없으므로 대안을 찾고 .. –
작성하는 대신 otherDoc.addEventListener ("event", this.myMethod, false); 이제 otherDoc.addEventListener ("event", this.bindFunction (this, this.myMethod), false);를 작성합니다. – Neil