我正在读一篇评论JavaScript的博客,我正试着自学。我还在纠结于函数,不太理解这段代码是如何运行的。有人能给我解释一下吗?
谢谢!
square = function (a) {
return a*a;
}
applyOperation = function (f, a) {
return f(a);
}
applyOperation(square, 10); // 100发布于 2014-06-02 08:47:44
applyOperation接受参数f和a,并返回f(a)。F参数是一个函数,它返回给定参数a的函数的值。
所以你调用applyOperation (applyOperation,10),这意味着square返回square(10),并且square函数只返回参数平方,给你100。
发布于 2014-06-02 09:02:35
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对象可以有两个以上的arg,并且命名callback是一个约定。这意味着以下代码被认为是有效的
function myFunction (mysuperrandomfunctionthatwaspassed, arg){
// ... some code
mysuperrandomfunctionthatwaspassed(arg);
}不过,如果您不使用单词callback作为回调函数,一些javascript开发人员可能会对您大喊大叫。
更多阅读:HERE和HERE
https://stackoverflow.com/questions/23985946
复制相似问题