是否可以定义一个函数,然后将该函数的副本分配给不同的变量?
这基本上是我有多远......
function add(x, y){
return x + y;
}
var function1 = new add()
var function2 = new add()
这似乎不起作用,因为它每次都试图运行add函数。
也是如此var function1 = new function add()
我是否需要以某种方式使用原型,或者我是以错误的方式看待它?
答案 0 :(得分:5)
这应该可以解决问题
var function1 = add;
var function2 = add;
答案 1 :(得分:3)
您正在评估该功能。要将函数本身分配给变量,请使用
var function1 = add;
var function2 = add;
但是,为什么要复制该功能还不是很清楚。
答案 2 :(得分:0)
如果您只是尝试创建对该函数的引用,只需进行此修改
function add(x, y){
return x + y;
}
var function1 = add;
var function2 = add;
之后你可以调用这样的函数。
function1(10,11);
function2(1,2);
答案 3 :(得分:0)
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
对象