有的javascript类为何function外会加个括号

我见很多的javascript类这么个写法:
(function(){代码...})().
问一个,为什么要这么写?

可以解释为 匿名函数自调用,也就是说,定义一个匿名函数,然后立即调用他(否则就无法获取他的引用了,因为匿名麼~)。

通常这样作,是在写一些大型javascript框架用,因为那个匿名函数的函数体,相当于提供了一个匿名的名字空间,而且因为他'自'执行,所以里面定义的identifier全部在这个匿名空间的庇护下。因此可以很好的避免名字冲突。因为javascript没有显式,或者说,语言本身并未提供名字空间机制。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-11-17
(function(){代码})()就等于执行了一个函数,而这个函数却没有函数名而已!
第2个回答  2008-11-17
匿名函数调用
如果在函数内需要再次调用这个函数的时候 需要使用constructor调用咯

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

javascript中:(function(){})();如何理解?
1. `{})`:这是一个匿名函数表达式的声明。这里的括号包围函数声明,表示它是一个函数表达式而不是一个语句块。这种匿名函数没有名字。2. ``:紧跟在函数表达式后面的括号表示立即调用这个函数。这意味着这个函数定义后立即被执行。这种结构确保了函数内部的代码会在定义后立即运行。为何使用?这种结构...

javascript中:(function(){})();如何理解?
`{});` 这种写法是IIFE的一种常见形式。这里的外部括号是非常重要的,它们告诉JavaScript解释器这是一个函数表达式,并且应该立即执行。如果没有这些外部括号,例如`function{}`,那么JavaScript会将其视为一个函数声明,而不是函数表达式,也就不会立即执行。四、使用场景 这种写法常用于创建局部作用域,...

javascript中: (function(){})();如何理解?
总的来说,"(function(){})();"是JavaScript中一个用于控制作用域和避免全局变量污染的有效工具。通过理解它的用法,开发者可以在编写代码时更加灵活地管理函数的生命周期。

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

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

javascript 的 "!function" 是什么意思?
function(){alert(1)}()因为function前面没有(或者! ~之类的运算符,js解析器会试图将关键字function解析成函数声明语句,而不是函数定义表达式。作为组运算符,小括号()会将其内部的表达式当成一个整体,然后返回结果,所以定义一个匿名函数正确的格式就是用小括号将函数体括起来。同样的! ~ + -等...

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

javaScript 函数尾的()用处是什么?
定义后立即执行 相当于:var ff=function(){ 。。。};fc(c);c是参数。

js中花括号的特殊作用?
在 JavaScript 中,单独的花括号 {} 被称为块(block)。块用于将多个语句组合在一起,形成一个复合语句。通常,它们与 if\/else、try\/catch 和 function 等关键字一起使用。然而,单独的花括号也可以用于创建一个新的词法作用域(lexical scope)。当使用单独的花括号时,该块内的变量和常量声明(如...

相似回答