有人能解释一下吗?IE8
( function(){
window.foo = function foo(){};
console.log( window.foo === foo ); // false
}() );发布于 2011-12-28 02:27:19
由于IE错误,命名函数表达式使用函数的单独副本创建单独的本地foo变量。
More info
var f=函数g(){};f === g;// false
这就是事情变得有趣的地方。或者更确切地说--完全疯了。在这里,我们看到了必须处理两个不同对象的危险--增加其中一个对象显然不会修改另一个对象;如果您决定使用缓存机制并将某些内容存储在f的属性中,然后尝试将其作为g的属性进行访问,则这可能会非常麻烦。
发布于 2011-12-28 02:30:10
如果你有兴趣纠正这个问题,这将会起作用。
( function(){
var f = function foo(){};
window.foo = f;
alert( window.foo === f ); // false
}() );https://stackoverflow.com/questions/8647920
复制相似问题