gpt4 book ai didi

javascript - Angular 模块包裹在函数(window、angular、undefined)周围,即使它们不需要

转载 作者:行者123 更新时间:2023-11-29 14:44:05 25 4
gpt4 key购买 nike

我注意到 angular 中的模块被具有相同定义的函数包装:

(function(window, angular, undefined){
.....
})(window, window.angular);

即使他们不使用它。例如,angular cookies 有,但 window 从未使用过。为什么是这样?我理解他们的闭包原则,即从全局范围中删除变量,但这并不能解释全部。

谢谢,弗拉德

最佳答案

这是为了确保这些变量的含义不会被其他东西改变。

例如:

window.angular = "333";


(function test() {
var angular = "111"; //changing the meaning of angular
var undefined = 222; //changing undefined to 222
(function iife() {
document.write('Not Passed in: <br/>');
document.write('angular == ' + angular);
document.write('<br/>')
document.write('undefined == ' + undefined);
document.write('<br/>')
document.write('<br/>')
})();


(function iife(angular,undefined) {

document.write('Passed in: <br/>');
document.write('angular == ' + angular);
document.write('<br/>')
document.write('undefined == ' + undefined);
document.write('<br/>')
document.write('<br/>')
})(window.angular, window.undefined);

})();

关于javascript - Angular 模块包裹在函数(window、angular、undefined)周围,即使它们不需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34777470/

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