【发布时间】:2017-07-06 06:34:42
【问题描述】:
我很困惑如何调用函数。有时它们以functionName() 格式给出,有时只是名称functionName。
例如在 HTML 中,当我们调用 onclick="functionName()" 但在 Javascript 中我们只是将函数 functionName 作为参数传递给另一个函数。
setTimeout(functionName, 1000);
这是书中的一个例子,假设我们必须传递一个带有参数的回调函数。
var mySetTimeout = function(callback, delay){
var dollars = 100;
callback(dollars);
};
var onCompletion = function(dollars,name){
console.log(name + ": Here's your $" + dollars);
};
var getMoney = function (name) {
var requestB = mySetTimeout(function(dollars){
onCompletion(dollars,name);
}, 1000);
};
getMoney('Simon');
在 mySetTimeout 函数中,我们将回调作为参数传递,但其中没有任何内容。但稍后在 mySetTimeout 函数中,我们将使用参数传递回调函数。
谁能解释一下所有的情况?谢谢!
【问题讨论】:
-
正如我在 MD_N mdn.beonex.com/en/DOM/window.setTimeout.html 中看到的那样,您可以将一个函数传递给 SetTimeOut ,或者尝试查看您的代码,为其保留日志。
-
你可以在这个链接中看到函数声明和表达式的区别。 stackoverflow.com/a/11146853/1856338
-
抱歉,回调函数就是这样工作的:)
-
您理解正确:“我们只是将函数作为参数传递给另一个函数”。它接受对函数对象的引用并将其传递。后来在
mySetTimeout里面,当callback跟括号一起使用的时候,其实是叫的。
标签: javascript