Javascript自执行函数 (Immediately-Invoked Function Expression)

1. Javascript编译器在遇到function这个关键字时,默认认为它是function声明,而不是表达式。

2. 在已声明的function后面加括号,即可调用它。比如,

function foo(){console.log('hello javascript.')}

foo();

3. 括号里面允许javascript表达式,(function(){console.log('hello javascript')}), 这样这个匿名函数就是一个表达式,而不是function的声明。根据上面第二点,后面加括号即可执行该函数,即(function(){console.log('hello javascript')})()。这个写法等价于(function(){console.log('hello javascript')}()),推荐用这个写法。

在不考虑返回值的情况下,以下方法都是等价的

+function(){console.log('hello javascript')}()

-function(){console.log('hello javascript')}()

!function(){console.log('hello javascript')}()

~function(){console.log('hello javascript')}()

new function(){console.log('hello javascript')}

new function(name){console.log('hello javascript' + name;)}('bruce')

 

posted @ 2016-08-29 17:04  liangzi4000  阅读(553)  评论(0编辑  收藏  举报