gpt4 book ai didi

javascript - 全局声明函数和使用 window.myfunc = myfunc 有什么区别

转载 作者:行者123 更新时间:2023-11-30 13:40:44 24 4
gpt4 key购买 nike

下面两个代码示例有什么区别:

(function(){
var myFunc = (function(){
//do something
})();
window.myFunc = myFunc;
})();

var myFunc = (function(){
//do something
})();

最佳答案

这两种方式非常相似,但是在myFunc 全局变量的创建方式上存在细微差别。

第二种方式,使用var语句,将myFunc变量创建为全局对象的不可删除属性,var语句显式设置内部{DontDelete} 属性,例如:

var myFunc = (function(){
//do something
})();

delete window.myFunc; // false

虽然第一个可以删除:

(function(){
var myFunc = (function(){
//do something
})();
window.myFunc = myFunc;
})();

//...
delete window.myFunc; // true

如果你在 Firebug 中尝试上面的操作,两者都可以被删除,那是因为 Firebug 在控制台中使用了代码评估(eval)。

可以查看上面的例子here .

推荐文章:

关于javascript - 全局声明函数和使用 window.myfunc = myfunc 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2420869/

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