有人可以解释为什么会发生这种情况吗?
如果我在名为test.js
的文件中写下这样的内容,
const anyObject = {}
(function(){
console.log('hello world!')
}())
使用$node test.js
然后在控制台中,将打印hello world!
,但后面跟着:
TypeError: (intermediate value) is not a function
我不知道那里究竟发生了什么,我想某种节点是将函数表达式作为函数调用表达式?
我正在使用节点v6.9.1
答案 0 :(得分:6)
您可以使用void
进行呼叫而不使用分号。
这会强制表达式进行评估并返回undefined
。
const anyObject = {}
void (function() {
console.log('hello world!')
}())
即使没有外括号也可以。
const anyObject = {}
void function() {
console.log('hello world!')
}()
答案 1 :(得分:2)
const anyObject = {};
(function(){
console.log('hello world!');
})();