我沒有對函數調用的控制權,我需要傳遞一些帶有指針的參數。可以做到嗎?如何傳遞帶函數簽名的參數
var a = function(a, b){
return a + b;
}
b = a; //parameter here???
任何幫助將不勝感激!
我沒有對函數調用的控制權,我需要傳遞一些帶有指針的參數。可以做到嗎?如何傳遞帶函數簽名的參數
var a = function(a, b){
return a + b;
}
b = a; //parameter here???
任何幫助將不勝感激!
將參數傳遞給a的正確方法是將最後一行替換爲:b = a(1, 2);
。
這會給你3
作爲結果,存儲到變量b
。 您可以通過運行console.log(b);
在任何時間看到的b
當前值:
var a = function(a, b){
return a + b;
}
b = a(1, 2); // parameters here
console.log(b); // prints 3
但正如我所說,使用b
這裏兩次是混亂的。一個更好的命名將是:
// sum is a better name
var sum = function(a, b){
return a + b;
}
result = sum(1, 2); // parameters here : 1 corresponds to a, 2 to b
console.log(result); // prints 3
想通了自己。如果問題不夠清楚,我很抱歉。
這就是我所需要的。
var a = function(a, b) {
return function(){
console.log(a + b);
}
};
b = a(3, 4);
b();
你能否澄清?目前還不清楚你想達到什麼目的。 – krl
我同意這一點不明確。是否爲函數'名稱'選擇'a'的目的?如果不是,那麼我懷疑你會對創建[代理]關閉*感興趣,這些代碼在[Eloquent JavaScript:Higher-Order Functions](http://eloquentjavascript.net/05_higher_order.html)中討論過。 – user2864740
這只是一個例子。 'b'應該用參數 – andrey