我正在阅读一篇评论JavaScript的博客,我正在尝试自学。我仍然围绕着函数,并不太明白这段代码是如何运行的。有人可以向我解释一下吗?
谢谢!
square = function (a) {
return a*a;
}
applyOperation = function (f, a) {
return f(a);
}
applyOperation(square, 10); // 100
答案 0 :(得分:2)
applyOperation接受参数f和a并返回f(a)。 f参数是一个函数,它返回给定参数a的函数的值。
所以你调用applyOperation(square,10),这意味着applyOperation返回square(10),square函数只返回平方给你的参数。
答案 1 :(得分:2)
f function
被称为callback function
。 callback function
是传递给另一个函数的函数。在您的代码中,square function
是callback function
。
callback function
通常采用以下形式:
function myFunction (callback, arg){
// ... some code
callback(arg);
}
function myOtherFunction(arg){
// ... some code
// return something
}
// to invoke the function
myFunction(myOtherFunction, {arg1: 'someStringValue1', arg2: 'someStringValue2'});
请注意,此处的arg对象可能有两个以上的args,命名callback
是一种约定。这意味着以下代码被视为有效
function myFunction (mysuperrandomfunctionthatwaspassed, arg){
// ... some code
mysuperrandomfunctionthatwaspassed(arg);
}
虽然如果你不使用单词callback
作为回调函数,一些javascript开发人员可能会对你大喊大叫。