gpt4 book ai didi

javascript - 命名闭包会污染全局/窗口对象吗?

转载 作者:数据小太阳 更新时间:2023-10-29 04:39:04 24 4
gpt4 key购买 nike

根据 this node style guide , 给闭包一个名字是一个好习惯:

Right

req.on('end', function onEnd() {
console.log('winning');
});

Wrong

req.on('end', function() {
console.log('losing');
});

不过,我习惯了想

function someName() { someStatements(); }

...语法作为创建全局变量的东西,someNamewindow.someName 用于该函数。这真的是一个好的实践,还是一个非常糟糕的风格指南?

最佳答案

虽然你不会有 Node 的这个问题:

命名函数表达式在 Internet Explorer 中存在漏洞,会污染窗口对象,如下所述:http://kangax.github.com/nfe/在“JScript 错误”下

(不那么)有趣的是,它们甚至是在从未执行的条件 block 中创建的,如本例所示:

var f = function g() {
return 1;
};
if (false) {
f = function g(){
return 2;
};
}
g(); // 2

这在我工作的生产网站上造成了一个问题,jQuery 突然被其他东西取代了 (https://dev.plone.org/ticket/12583)

关于javascript - 命名闭包会污染全局/窗口对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12479915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com