网上说预编译的最后一步几乎都是:找到函数声明,将函数名当作 AO 对象的属性,对应属性的值为函数体。
按照这样的理解,下面的调用 bar 肯定是成功的。
function foo() {
bar()
function bar() {}
}
foo()
稍微修改一下。
function foo() {
bar() //bar is not a function
{
function bar() {}
}
}
foo()
如上所示,bar 的值不是一个 function,而是 undefined。
为什么 bar 是 undefined ?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.