2012-03-29 19 views
0

私はこれで元に戻ることはできません。私は単純に変数に関数を入れ、パラメータを与えて後で呼びたいと思っています。変数に関数を渡して、パラメータを渡します。

var logic = function(itemId) {    
    console.log(itemId); 
}; 

jQuery("#flipright").click(function() { logic.apply(1); }); 

これは "undefinded"を出力します。

私には何が欠けていますか?

答えて

4

単にlogic(1)を呼び出します。
あなたはコンテキストを渡したい場合は、あなたがcallapplyを使用することができます。

logic.apply(context, [1]); 
// or 
logic.call(context, 1); 

あなたが別の関数にコンテキストを渡したい場合は、applyまたはcallを使用する必要がある - と呼ばれる機能でそのthisキーワードの意味どのコンテキストに渡してもそれを参照します。
ここにシナリオがあります:

var logic = function(itemId) {    
    console.log(this,itemId); 
}; 

jQuery("#flipright").click(function() { 
    // output to console the current jquery object and "1" 
    logic.call(this,1); 
}); 
+0

ああ、右:-)ありがとう! – Jem

関連する問題