这是一个抽象的 JavaScript 代码示例,它说明了导致我在这里提出问题的情况:
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 对象?
或者也许有任何建议我可以如何重组我的代码以保持功能 - 全局监听关键事件,修改私有变量的方法可以在类外部访问,但私有变量本身不是。
PS 在私有内部调用特权方法并没有改变任何东西。