首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE8 `window.fn !== fn`

IE8 `window.fn !== fn`
EN

Stack Overflow用户
提问于 2011-12-28 02:24:41
回答 2查看 335关注 0票数 11

有人能解释一下吗?IE8

代码语言:javascript
复制
( function(){
    window.foo = function foo(){};
    console.log( window.foo === foo ); // false
}() );
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-28 02:27:19

由于IE错误,命名函数表达式使用函数的单独副本创建单独的本地foo变量。

More info

var f=函数g(){};f === g;// false

这就是事情变得有趣的地方。或者更确切地说--完全疯了。在这里,我们看到了必须处理两个不同对象的危险--增加其中一个对象显然不会修改另一个对象;如果您决定使用缓存机制并将某些内容存储在f的属性中,然后尝试将其作为g的属性进行访问,则这可能会非常麻烦。

票数 13
EN

Stack Overflow用户

发布于 2011-12-28 02:30:10

如果你有兴趣纠正这个问题,这将会起作用。

代码语言:javascript
复制
( function(){
    var f = function foo(){};
    window.foo = f;
    alert( window.foo === f ); // false
}() );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8647920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档