1

作業中のJavascriptプログラムでJQueryを使用したいのですが、スコープでいくつかの問題が発生しました。この疑似コードでmyfunction1からmyfunction2を呼び出すにはどうすればよいですか?(新しいMyConstructorオブジェクトがどこかに作成され、myfunction1()が呼び出されたと仮定します)

function MyConstructor(){...}

MyConstructor.prototype.myfunction1 = function(param) {
   $('#some_element').click(function(){
    this.myfunction2('clicked!'); //this doesn't work
  });
}

MyConstructor.prototype.myfunction2 = function(param) {

}
4

1 に答える 1

2

myfunction2this.myfunction2()の任意の関数で呼び出すことができますMyConstructor

あなたの場合、。myfunction2の意味が異なる別の関数内で呼び出そうとしていthisます。アクセスするには、の関数パラメーターに拡張するクロージャースコープ内myfunction2の変数を作成できますthisthis.myfunction2click

var self = this; 
$('#some_element').click(function(){
   self.myfunction2('clicked!');
});

また

var myfunction2 = this.myfunction2; 
$('#some_element').click(function(){
   myfunction2('clicked!');
});
于 2011-07-27T08:31:13.963 に答える