0

この長いタイトルを説明するための短くて簡単な例 (質問はコメントされています):

(この JavaScript が関連付けられている HTML ドキュメントのボタンをクリックしたとしましょう)

function AClass() {

}

AClass.prototype.stepOne = function() {
  console.log('stepOne');
  //How to call stepTwo() from here (since `this` refer to the button DOM Object element) ?
}

AClass.prototype.stepTwo = function() {
  console.log('stepTwo');
}

var A = new Aclass();

$('button').click(A.stepOne);

私の最初の動きは、コンストラクターでクラシックを宣言することでしたがvar that = this、メソッドの範囲外であるため、メソッドをコールバックとして使用するときにこの構文を使用する方法はありますか?

4

2 に答える 2

1
$('button').click(function(){
    A.stepOne();
});

stepOneA オブジェクトのコンテキストを持つようになりました

于 2013-06-19T09:19:52.847 に答える
0

匿名関数で呼び出しをラップしてクロージャーを作成します。

$('button').click(function(){A.stepOne()});

次に、stepOne から stepTwo を呼び出すだけです。

AClass.prototype.stepOne = function() {
  console.log('stepOne');
  this.stepTwo();
}

作業例 http://jsfiddle.net/wD68z/

于 2013-06-19T09:17:51.207 に答える