【发布时间】:2014-05-13 00:05:45
【问题描述】:
确切地说,console.log() 是一个函数吗?为什么下面这两个代码sn-ps有不同的输出?
function delay(x) {
console.log('Start of timeout');
return x;
};
setTimeout(function(){console.log('End of timeout');}, delay(5000));
console.log('Start to do something else');
.
function delay(x) {
console.log('Start of timeout');
return x;
};
setTimeout(console.log('End of timeout'), delay(5000)); // ???????
console.log('Start to do something else');
【问题讨论】:
-
在您的第一个示例中,您传递
setTimeout一个稍后调用的函数,但在您的第二个示例中,您调用console.log并将返回值传递给setTimeout函数。跨度> -
setTimeout的第一个参数是一个函数,在第一个sn -p你传函数,ok。在第二个中,您正在调用函数,因此您不是将函数作为参数传递,而是函数返回的值
标签: javascript node.js function console.log