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

来源:百度知道 编辑:UC知道 时间:2024/05/29 19:21:57
我见很多的javascript类这么个写法:
(function(){代码...})().
问一个,为什么要这么写?

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

通常这样作,是在写一些大型javascript框架用,因为那个匿名函数的函数体,相当于提供了一个匿名的名字空间,而且因为他'自'执行,所以里面定义的identifier全部在这个匿名空间的庇护下。因此可以很好的避免名字冲突。因为javascript没有显式,或者说,语言本身并未提供名字空间机制。

(function(){代码})()就等于执行了一个函数,而这个函数却没有函数名而已!

匿名函数调用
如果在函数内需要再次调用这个函数的时候 需要使用constructor调用咯