javascript 中的回调说明
callback explanation in javascript
在下面的代码中,我使用 setTimeout 来调用 foo
function foo() {
console.log('2000 milliseconds have passed since this demo started');
}
setTimeout(foo, 2000);
据我所知,如果我们不使用括号,则代码将仅将该函数作为指针来引用,函数是如何在此处调用而不带括号
以此为例进行比较:
function myFunction(callback) {
callback();
}
function foo() {
console.log('The foo function has been called');
}
myFunction(foo);
您作为参数传递的函数被 myFunction
中的代码调用。
setTimeout
以类似的方式工作:您只是没有查看它的源代码,因为它不是您自己编写的代码。浏览器自带。
举个例子
function f() {
return 10;
}
var a = f();
var b = f;
此处 a 包含 10,而 b 将包含对函数 f 的引用。您可以使用
调用 b 上的函数
var c = b(); // c contains 10
settimeout 的工作方式类似。如果您用括号调用该函数,它将立即被调用。虽然我们不使用括号,但 settimeout 函数将有一个引用并在指定时间后调用它。
在下面的代码中,我使用 setTimeout 来调用 foo
function foo() {
console.log('2000 milliseconds have passed since this demo started');
}
setTimeout(foo, 2000);
据我所知,如果我们不使用括号,则代码将仅将该函数作为指针来引用,函数是如何在此处调用而不带括号
以此为例进行比较:
function myFunction(callback) {
callback();
}
function foo() {
console.log('The foo function has been called');
}
myFunction(foo);
您作为参数传递的函数被 myFunction
中的代码调用。
setTimeout
以类似的方式工作:您只是没有查看它的源代码,因为它不是您自己编写的代码。浏览器自带。
举个例子
function f() {
return 10;
}
var a = f();
var b = f;
此处 a 包含 10,而 b 将包含对函数 f 的引用。您可以使用
调用 b 上的函数var c = b(); // c contains 10
settimeout 的工作方式类似。如果您用括号调用该函数,它将立即被调用。虽然我们不使用括号,但 settimeout 函数将有一个引用并在指定时间后调用它。