我正在测试这段代码,但发生了一些奇怪的事情。它显示错误
Uncaught Typeerror:name不是函数
但是,如果我将“name”更改为其他任何内容,那就可以了!
( name = function (x) {console.log(x || "not set");})();
name ('Rami');
这是Chrome控制台上显示的错误
答案 0 :(得分:1)
原因是在浏览器上下文中," name"是指" window.name"隐式。
你知道这个函数被调用了两次吗?
如果您只想返回一个函数指针,可以使用:
name2 = function (x) {console.log(x || "not set");};
name2('Rami');
答案 1 :(得分:0)
您正在IIFE的范围之外调用该函数
这是正确的方法:
(function() {
const name = function(name) {
console.log('Hello ' + name);
}
name('Rami');
}());