当我这样声明一个函数时:
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 失去了他的功能?请帮忙
最佳答案
Why does x lose his function?
函数声明在当前范围内创建同名变量。
命名函数表达式不会(某些旧版本的 Internet Explorer 除外,这是一个错误)。
这就是函数表达式应该如何工作。
关于javascript - JavaScript 函数的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30284701/