Javascript 函数引用在IIFE中不可用?
如果我运行以下命令:Javascript 函数引用在IIFE中不可用?,javascript,scope,iife,Javascript,Scope,Iife,如果我运行以下命令: var fn = function(){} (function(){ fn(); }()); 它在Chrome中抛出“TypeError:undefined不是函数”,在Firebug中抛出“TypeError:fn不是函数” fn是否应该在此范围链中可用,而不必执行window.fn 奇怪的是,如果我跑步: var fn = function(){} console.log(fn); (function(){ fn(); }()); 然后它的行为与预期的一
var fn = function(){}
(function(){
fn();
}());
它在Chrome中抛出“TypeError:undefined不是函数”,在Firebug中抛出“TypeError:fn不是函数”
fn
是否应该在此范围链中可用,而不必执行window.fn
奇怪的是,如果我跑步:
var fn = function(){}
console.log(fn);
(function(){
fn();
}());
然后它的行为与预期的一样:fn
作为一个函数记录,并且在Chrome或Firefox中都不会抛出错误
这让我觉得自己很傻,好像我不应该声称自己理解JS。你忘了添加分号:
var fn = function(){};
(function(){
fn();
}());
该死,是阿西
var fn = function(){};
(function(){
fn();
}());
哈,你发帖的时候我自己也在回复!回答你自己问题的方式,逐字逐句+1 ;-)