1

これはコード例で最もよく説明されているので、テストに渡された匿名関数が jQuery hide イベントの後に呼び出されない理由を (技術用語で) 誰でも説明できますか?

更新: この例では、これが何を指しているのかは実際には問題ではありませんが、明確にするために、テスト関数がグローバル スコープにあり、これがアンカー要素であるとしましょう。

test(this, function() {
    alert('Called by anonymous function!');
});

function test(object, callback) {
    $(object).hide('slow', callback);
}

変化:

$(object).hide('slow', callback);

に:

$(object).hide('slow', callback());

動作します。これは、コールバックが現在のコンテキストまたはグローバル ウィンドウ オブジェクトの名前付き関数ではないためですか?

4

2 に答える 2

1

コードは次のようになります

test(this, function() {...});

コードで無名関数を呼び出していませんが、その構文が実際に何をするのかわかりません

実際の例のこのフィドルをチェックしてくださいhttp://jsfiddle.net/L4NxD/2

編集、元のコードをより適切に複製するために、フィドルをさらに編集しました。以前のバージョンを取得するには、 http://jsfiddle.net/L4NxD/1 と http://jsfiddle.net/L4NxD/使用してください。

于 2012-04-27T03:05:56.423 に答える
0

これが正しい方法です。

http://jsfiddle.net/6dFm6/6/

非表示アニメーションの後に remove を呼び出すと、オブジェクトが削除され、アニメーション コールバックが呼び出されなくなります。

jsfiddle.net/6dFm6/1 で機能する理由は、コールバックが実行時に実行され、コールバック イベント中に値が渡されて呼び出されるためです。

「functionName()」がコールバックとして返す内容について、さまざまなレベルの明確さについては、これらの記事を参照してください。呼び出しによって「未定義」が返されたように見えますが、実行はまだ正しい時間に行われています。

コールバック関数名の後に () を使用するのはいつですか?

JavaScript では、括弧を使用して関数を呼び出しても違いはありますか?

コールバック関数 - 括弧の使用

名前付き関数を jquery ajax 成功コールバックとして使用する場合、括弧が必要ですか?

JavaScript 構文: 関数呼び出しと括弧の使用

于 2012-10-11T10:43:36.843 に答える