最近我一直在阅读大量的Javascript,并且我一直注意到整个文件在导入的.js文件中被包装成如下所示。 (function() { … code … })(); 这样做的原因是什么,而不是一个简单的构造函数的设置?
我正在阅读关于closures的一些post,并在任何地方看到这个post,但没有明确的解释它是如何工作的 – 每次我只是被告知使用它…: // Create a new anonymous function, to use as a wrapper (function(){ // The variable that would, normally, be global var msg = "Thanks for visiting!"; // Binding a new function to a global object window.onunload = function(){ // Which uses the 'hidden' variable alert( msg ); }; // Close off the […]
我最近将json2.js的当前版本与我在项目中使用的版本进行了比较,并注意到函数expression式是如何创build和自我执行的。 代码用于包装一个匿名函数括号,然后执行它, (function () { // code here })(); 但是现在它将自动执行的函数包装在括号中。 (function () { // code here }()); 在接受的解释JavaScript的封装的匿名函数语法的回答中,CMS有一个评论:“ (function(){})(); 和(function(){}()); 有效“。 我想知道有什么不同? 前者是否通过留下一个全球匿名的function来记忆? 圆括号应该放在哪里?
在JavaScript中,你什么时候想要使用这个: (function(){ //Bunch of code… })(); 在此: //Bunch of code…