gpt4 book ai didi

javascript - 为什么要在函数定义调用对中编写全局代码?

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

我看到一些示例,其中包括 jQuery 和 jslint 的 JavaScript 代码使用以下表示法:

(function(){
// do something
})();

代替:

// do something

我一开始以为这只是局部作用域,即在不污染全局命名空间的情况下为代码块创建局部变量。但我也见过完全没有任何局部变量的实例。

我在这里错过了什么?

最佳答案

它也与函数的作用域有关——代码块中声明的所有内容都仅限于该匿名函数。事情通常由框架公开

(function($) {

var localVarOnly = "local";

$.fn.myCoolFunction = function() { // in the case of jquery, make this publicly available
otherCoolFunction(); //alerts hi
alert(localVarOnly); // alerts local
};

function otherCoolFunction() { // scoped to this anonymous function only
alert('hi');
};

})(jQuery);

otherCoolFunction(); // undefined
alert(localVarOnly); // undefined

关于javascript - 为什么要在函数定义调用对中编写全局代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2897987/

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