【发布时间】:2012-09-13 19:47:44
【问题描述】:
如果我运行以下命令:
var fn = function(){}
(function(){
fn();
}());
它在 Chrome 中抛出“TypeError: undefined is not a function”,在 Firebug 中抛出“TypeError: fn is not a function”。
不应该fn 在这个范围链中可用,而不必做window.fn?
奇怪的是,如果我跑步:
var fn = function(){}
console.log(fn);
(function(){
fn();
}());
然后它的行为符合预期:fn 被记录为一个函数,并且在 Chrome 或 Firefox 中都没有引发错误。
这让我觉得很傻,好像我不应该声称自己了解 JS。
【问题讨论】:
标签: javascript scope iife