這裏是說明導致我在這裏問一個問題的情況一個抽象的JavaScript代碼示例:JavaScript:使用'this'調用函數。不參照方法類
function className(){
var private_variable = 0;
function privateMethod(){
// Some irrelevant code.
};
this.privilegedMethod = function(){
// Some relevant code to determine if private variable needs to be modified.
private_variable+=val; // Modifies private variable.
};
this.init = function() {
$(window).keydown(function (key) {
if (key.which == 13) {
privateMethod(); // Call to private method works fine.
this.privilegedMethod(); // 'this' references Window object,
// not this class method as expected.
}
});
};
};
我的問題是 - 是否有其他辦法可以讓通話this.privilegedMethod()引用它的類,而不是它應用於的Window對象?
或者可能有任何建議我可以重組我的代碼保持功能 - 關鍵事件是全局聆聽的,修改私有變量的方法可以在類外部訪問,但私有變量本身不是。
P.S.將該調用放置在私有內部的特權方法中並沒有改變任何內容。
謝謝你的快速響應;奇蹟般有效。 – user1203684 2012-02-11 12:45:06
如果他回答了你的問題,請標記爲已回答 – Paul 2012-02-11 12:50:38
我認爲「自我」對於以這種方式使用的變量來說是一個更好的名稱,因爲它是其他語言使用的而不是「this」,所以更具代表性。 – 2012-02-11 12:52:35