是否可以定義函數並將函數的副本分配給不同的變量?將函數的副本分配給var
這實質上是多遠我有...
function add(x, y){
return x + y;
}
var function1 = new add()
var function2 = new add()
這似乎並不如它試圖每次運行加載函數工作。
var function1 = new function add()
我是否需要以某種方式使用原型,或者我是否以錯誤的方式查看原型?
是否可以定義函數並將函數的副本分配給不同的變量?將函數的副本分配給var
這實質上是多遠我有...
function add(x, y){
return x + y;
}
var function1 = new add()
var function2 = new add()
這似乎並不如它試圖每次運行加載函數工作。
var function1 = new function add()
我是否需要以某種方式使用原型,或者我是否以錯誤的方式查看原型?
您正在評估函數。爲了本身的功能分配給一個變量,使用
var function1 = add;
var function2 = add;
可是,爲什麼你要複製的功能,它不是很清楚。
我怎麼錯過了!?完美,謝謝! – Captastic
這應該做的伎倆
var function1 = add;
var function2 = add;
如果你只是想創建到函數引用只是做此修改
function add(x, y){
return x + y;
}
var function1 = add;
var function2 = add;
在這之後你可以調用的函數是這樣的。
function1(10,11);
function2(1,2);
Javascript中的函數與其他任何對象一樣。
您可以創建許多人提到了同樣的功能,並將它們存儲例如在陣列
function add(x, y) {
return x + y;
}
var v = [add, add, add, add];
alert(v[3](33, 9)); // Will show 42
唯一的「神奇」的事情發生,當你調用一個函數從一個對象成員查找得到它
x = {};
x.f = add;
x.f(12, 3); // Returns 15
將會發生的「奇怪」事情是this
內部的函數調用時,將以此方式爲對象,而不是全局的window
對象,因爲它會在您直接調用函數時發生。
這也意味着,混淆性不夠,
x.f(z);
是不一樣的
[x.f][0](z);
或作爲
var ff = x.f;
ff(z);
因爲在第一種情況下this
將x
,在第二種情況下this
將是數組,而在第三種情況下,它將是全局的window
對象。
你可以這樣做 - 'var function1 = add; function1();' – ps2goat
你爲什麼要拷貝一個函數? – SLaks
爲什麼你需要該功能的副本?你想達到什麼目的? –