【发布时间】:2015-07-28 20:46:23
【问题描述】:
当我这样声明一个函数时:
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 失去了他的功能?请帮助p
【问题讨论】:
-
我得到了不同的结果..在 chrome 和 mozilla 中尝试过..
-
@RayonDabre 我没有,我两个都试过了。你到底尝试了什么?
-
参见kangax.github.io/nfe --- 在标题“命名函数表达式”下,确实提到了这一点(该部分的结尾):“要记住的一个重要细节是,这个名称仅在新定义的函数范围内可用;规范要求标识符不应该对封闭范围可用:"
-
@Pius,检查this
-
@RayonDabre 那完全不同。你想展示什么?当然你的“x()”是定义的——你在顶部这样做!请参阅我的评论和上面的链接。
标签: javascript function variables typeof