javascript - 为什么 console.log 不能作为参数?

标签 javascript

<分区>

在 javascript 中有一个回调,函数是一等对象,对吗?所以我可以传递一个函数作为参数,但是如果我传递 console.log() 它不起作用为什么它不是一个函数?

setTimeout(function(){console.log("hello")},5000);

但是这段代码是有效的

setTimeout(console.log("hello"),5000);

产生错误,这是为什么?

最佳答案

当您使用一些参数调用 console.log 时,该参数被打印到控制台并且该函数返回 undefined

所以当你这样做的时候:

setTimeout(console.log("hello"),5000);

"hello" 将被打印出来,但实际上你在做的是:

setTimeout(undefined, 5000);

在另一个示例(有效)中,您创建了一个新函数,但您没有调用它。因此,您将这个新函数传递给 setTimeout,这就是它起作用的原因。

关于javascript - 为什么 console.log 不能作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50708915/

相关文章:

javascript - emscripten 在 C 中读取 javascript arrayBuffer

javascript - HTML5 Canvas : Can it blur shapes aswell as images

javascript - 在一个完全 javascript Web 应用程序中,如何制作才能单击退格键并转到上一个操作?

javascript - jQuery:如何获取表行中所选选项的值

javascript - 如何生成一个随机数,数字的长度需要为21,并且在Postman中需要加上 "01"作为前缀

javascript - 如何编写合适的算法序列化这种特殊格式的json数据?

javascript - 尝试使用连接器表连接 Sequelize 中的两个数据库表

javascript - 动态增加和减少 jQuery slider 值

javascript - RecordRTC:Ondataavailable 调用了两次。只有第一个文件是正确的,其他文件已损坏或太小

c# - jQuery.html() 不能很好地与 Asp.Net innerHtml 一起工作