Javascript Jquery:将函数作为变量传递
我正在通过这个网站学习jquery,我真的很困惑如何将函数作为变量传递(如果我的措辞正确的话)。举个例子:Javascript Jquery:将函数作为变量传递,javascript,Javascript,我正在通过这个网站学习jquery,我真的很困惑如何将函数作为变量传递(如果我的措辞正确的话)。举个例子: function makeAddFunction(amount) { function add(number) { return number + amount; } return add; } var addTwo = makeAddFunction(2); var addFive = makeAddFunction(5); show(addTwo(1) + add
function makeAddFunction(amount) {
function add(number) {
return number + amount;
}
return add;
}
var addTwo = makeAddFunction(2);
var addFive = makeAddFunction(5);
show(addTwo(1) + addFive(1));
我知道makeAddFunction(2)说:“makeAddFunction接受可变数量,所以将2传递给它”。
我不明白两件事:
var addTwo=makeAddFunction(2)代码>
变成
var addTwo=function(number){returnnumber+2;}代码>
这相当于:
函数addTwo(number){返回数+2;}代码>
所以两个人接受一个论点
公元2年
show(加两(1)+加五(1))代码>
变成
show((1+2)+(1+5))代码>
show(3+6)代码>
show(9)代码>makeAddFunction
返回函数引用。通过函数引用,您可以调用它
执行makeAddFunction时(2)代码>,需要检查的重要内容是返回的内容。如您所见,它返回另一个函数add
。所以实际上,执行var addTwo=makeAddFunction(2)代码>与
var addTwo = function add(number) {
return number + 2;
}
作为证明,请检查您可以做什么:
console.log(makeAddFunction(2)); //Will Log function add(){...}
console.log(makeAddFunction(2)(1)); //Will Log 3
实际上,您只是在创建“动态函数”,或者它的正确名称:首先,它与jquery无关,这些都是javascript特性。第二部分称为makeAddFunction
返回一个函数(每次调用时都会返回一个不同的函数)。这使得addTwo
和addFive
都可以运行。所以你可以调用它们并传递它们参数,就像你对其他函数一样。对。。但是addTwo(1)如何将(1)一直发送到函数“add”的“number”变量呢?我的意思是,如果您要将(1)传递给makeAddFunction变量“number”而不是“amount”…哦,等等。变量“addTwo”是否成为函数(编号)。。。因为在makeAddFunction中,我们返回“add”?@user3585210,makeAddFunction
返回add
,并且add
是一个函数,是的。谢谢,这很有意义