关于javascript,下面的代码是什么意思?function为什么用括号括起来

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

用括号括起来代表马上执行。
我们平常的调用一个函数是这样:

function myFunction(){
//function content
}
myFunction();//这里调用

这个其实就你上面的代码一样的,只不过你上面的代码使用的是匿名函数,定义完马上就被调用了。

在JavaScript中函数就是一个对象,你可以这样理解。其实这:function(window,undefined){}就是一个对象,我给的例子myFunciotn()也是作为
/*下面这个函数其实就是Function的对象,它跟:
var myFunction = new Function(); 是等价的,它又将作为window的属性存在着
*/
function myFunction(){
//function content
}
它的一个对象存在着(你知道,JavaScript中对象也可以有自己的对象属性)。这样看他们都是一样-是一个对象。
为什么很多地方都使用你说的那种形式来写JavaScript的代码呢?
因为在JavaScript中代码的效率非常重要,一个函数对象在被执行完了之后,系统就会将它销毁,但是如果是一个全局属性的话,只有等到整个窗口被销毁的时候这些属性才会被销毁。像我上面那样的写法,myFucntion()函数在被执行完之后会被系统立马销毁掉,但是函数
function myFunction(){
//function content
}
还会作为一个全局的属性(前提是我们将它定义成全局)直到窗口销毁它才会被销毁,但是我们后面不会再调用它了。这样,如果有很有这样的属性或者是函数的话,会白白的浪费很多的系统资源。(function(window,undefined){})(window);这种写法就很合理了,这个函数执行完之后立马就被销毁掉,节省了系统的开销。追问

看了你的回答有种恍然大悟的感觉,说的很好,再深入一点,那三个参数是什么意思,有什么作用

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-09
立即执行函数..
这个是载入后就执行.window是参数.
第2个回答  2012-06-10
定义后立即执行

有的javascript类为何function外会加个括号
可以解释为 匿名函数自调用,也就是说,定义一个匿名函数,然后立即调用他(否则就无法获取他的引用了,因为匿名麼~)。通常这样作,是在写一些大型javascript框架用,因为那个匿名函数的函数体,相当于提供了一个匿名的名字空间,而且因为他'自'执行,所以里面定义的identifier全部在这个匿名空间的庇护下。...

javascript中: (function(){})();如何理解?
javascript中: (function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环境,增加代码的兼容性。(function(){})是一个标准的函数定义,但是没有复制给任何变量。所以是没有名字的函数,叫匿名函数。没有名字就无法像普通函数那样随时随地调用了,所以在他定义完成后就...

javascript中: (function(){})();如何理解?
在JavaScript中,"(function(){})();"是一个常见的匿名函数用法,其核心目的是限制函数内部变量的作用域,避免对全局环境产生影响,提高代码的健壮性和兼容性。它实际上定义了一个函数,但并未为其分配名称,因此我们称它为无名函数。由于无名,我们不能像普通函数那样直接调用它,所以在定义后立即执行...

javascript 函数表达的问题 fun跟fun()有什么不同?
JavaScript中的函数的使用包括下面这3个方面, 声明函数, 传递函数, 调用函数. 具体示例如下:\/\/1. 声明函数:function func(){ console.log('执行了函数');}\/\/2. 调用函数: 这时要带括号func(); \/\/即执行函数内部的代码, 如果不调用函数, 函数内部代码不会执行;\/\/3. 传递函数: 将函数当作...

javascript中:(function(){})();如何理解?
JavaScript中的`{});`是一个立即执行函数表达式。什么是立即执行函数表达式?在JavaScript中,你可以创建函数并立即调用它。这种结构有时被称为立即执行函数表达式。这种形式常用于创建一个封闭的作用域,用于限制变量的可见性,避免污染全局命名空间。此外,它还可以用于初始化代码或配置设置。结构解析 `{})...

JavaScript 函数调用时带括号和不带括号的区别
带括号是函数,不带括号是方法,如果是函数,那么带()的立即执行。而不带()的可以理解为C里的指针,指向这个函数。比如 function func(){ alert('aaaa');} var a=func();\/\/执行弹出‘aaaa’ ---弹出一次 var b=func;\/\/此时b是一个函数,调用b会执行alert('aaaa')b();\/\/调用---又...

(function($){...})(jQuery)是什么意思
这个是JavaScript中的自调用函数,首先第一个小括号里面是一个匿名函数,该函数的形参是$,然后直接调用该匿名函数并传入实参jQuery,但是这样会造成语法错误,所以给匿名函数用小括号括起来就可以了。下图是错误使用自调用函数的例子,浏览器会报错。

javascript 中“!function(){}() ” 是什么意思?
一、Javascript引擎在解析javascript代码时会‘函数声明提升'(Function declaration Hoisting)当前执行环境(作用域)上的函数声明。而函数表达式必须等到Javascirtp引擎执行到它所在行时,才会从上而下一行一行地解析函数表达式。二、函数表达式后面可以加括号立即调用该函数,函数声明不可以,只能以fnName()形式...

解释下面JavaScript带下划线代码的意义
1>var pp = Math.random();\/\/ 意思是说产生勒一个随机数,因为 javascript 中的所有变量类型兜是 var 所以在接下来如果要当作数字使用的话还要进行转换。2>var foot = Math.round(pp * (a-1))+1;\/\/ Math.round(pp * (a-1)) 产生一个随机数,范围在上一个随机数 pp*(3-1) 之间,...

javascript中:(function(){})();如何理解?
JavaScript中的`{});`是一种自执行匿名函数的写法。详细解释如下:一、匿名函数的理解 在JavaScript中,函数可以定义为匿名,即没有名字的函数。匿名函数常常用于一些临时的、不需要重复调用的场景。它们可以在定义之后立即被执行,也可以被赋值给变量,以后通过变量来调用。二、函数表达式与IIFE 函数表达式...

相似回答