2

だから私はこのコールバックをオブジェクト内で動作させようとしてきました.

1) 可能です。2) 特別な構文が必要です。

したがって、定期的に宣言された関数を使用する代わりに、次のようにします。

function callback() {}

そして、それを参照によって別の関数に渡します。

doSomething(コールバック)

関数を含むオブジェクト プロパティを渡そうとしています:

   {
     prop: function() {}
   } 

それをコールバックとして送信します。

問題は、prop の参照を渡すとエラーがスローされることです。

doSomething(prop): 

スロー:Uncaught SyntaxError: Unexpected token :

完全な例が必要な場合は、お知らせください。

ありがとう、ケン

** 編集 **

さて、少し混乱した後、かなり完全な例を入力しています。

var obj = {
    init: function() {
        this.some_function(this.callback_function)
    },
    some_function: function(callback) {
      callback();
    },
    callback_function: function() {
      // Callback!
    }
}

this.callback_function を引数として some_function() に渡すときに () を指定しないと、予期しないトークン エラーがスローされます。

以前に完全な例を投稿しなかったことに感謝し、申し訳ありません。

ケン

4

5 に答える 5

3

これはOPの質問に対する解決策ではないことに気づきましたが、「オブジェクトメソッドをコールバックとして渡す」ことをグーグルで調べたところ、これが出てきました。また、リンクhttp://bitstructures.com/2007/11/javascript-method-callbacks.htmlも見つけました。これは、js でそれを行う方法を理解するのに役立ちました。HTH

于 2013-08-05T14:37:19.053 に答える
1

メソッドを渡すだけです:

var obj = {
    prop: function() {}
};
doSomething(obj.prop);
于 2012-08-27T16:12:57.683 に答える
0

obj.func引数として実行すると、スコープから失われる関数が渡されthisます。

some_function: function(callback) {
    callback.call(this);
},
于 2012-08-28T02:53:58.907 に答える
0

返信が遅くなり申し訳ありません (私は休暇中でした)。構文エラーでした。オブジェクト メソッドでコンマ区切り文字を忘れていました。

于 2012-09-06T20:22:19.273 に答える
0

末尾のセミコロンを間違えていますdoSomething(prop):

于 2012-08-27T16:28:13.370 に答える