のメソッドに参照していませんここに質問をする私を引き起こしている状況を示す抽象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
彼があなたの質問に答えた場合にはAnsweredとマークしてください – Paul
私は、このように使われている変数の "self"は "this"の代わりに他の言語が使っているので、より同義語だと思います。 –