当我声明这样的函数时:
function x() { return 123 };
然后:
typeof x; //return "function"
typeof x(); //return "number"
没关系,但是一旦我创建了这样的变量:
var y = function x() { return 123 };
变成:
typeof y; //return "function"
typeof y(); //return "number"
typeof x; //return "undefined"
typeof x(); //return error
为什么x失去了他的功能?请帮助
答案 0 :(得分:1)
为什么x失去了他的功能?
函数声明在当前作用域中创建一个同名的变量。
命名函数表达式没有(除了某些旧版本的Internet Explorer,这是一个错误)。
这就是函数表达式应该如何工作。