javascript (function() { /* code */ })() 自执行函数
2016-10-12 14:08
288 查看
(function(){ function a(){ alert("a"); } })();
自执行匿名函数:
常见格式:(function() { /* code */ })();
解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。
作用:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许(变量前加上window,这样该函数或变量就成为全局)。各JavaScript库的代码也基本是这种组织形式。
总结一下,执行函数的作用主要为 匿名 和 自动执行,代码在被解释时就已经在运行了。
其他写法:
(function () { /* code */ } ()); !function () { /* code */ } (); ~function () { /* code */ } (); -function () { /* code */ } (); +function () { /* code */ } ();
因为js是函数作用域,所以如果想实现某个功能又不想污染全局变量的时候,会用这个自执行的匿名函数,常见于jquery插件。
var data= { table : [], tree : {} }; (function(dm){ for(var i = 0; i < dm.table.rows; i++){ var row = dm.table.rows[i]; for(var j = 0; j < row.cells; i++){ drawCell(i, j); } } })(data);
我们创建了一个匿名的函数,并立即执行它,由于外部无法引用它内部的变量,因此在函数执行完后会立刻释放资源,关键是不污染全局对象。
相关文章推荐
- 深入理解javascript中的立即执行函数(function(){…})()
- 深入理解javascript中的立即执行函数(function(){…})()
- 深入理解javascript中的立即执行函数(function(){…})()
- 理解javascript中的立即执行函数(function(){})()
- 深入理解javascript中的立即执行函数(function(){…})()
- Javascript基础_12深入理解javascript中的立即执行函数(function(){…})()
- 理解javascript中的立即执行函数(function(){})()
- 深入理解javascript中的立即执行函数(function(){…})()
- Javascript Function对象扩展之延时执行函数
- javascript模块化:立即执行函数(function(){…})()
- 深入理解javascript中的立即执行函数(function(){…})()
- javascript立即执行函数 (function(){})()
- 理解javascript中的立即执行函数(function(){})()
- [JavaScript] Script 中 function, variable 的定义会提升到函数执行前面;但是,function 中定义的 global variable 则不会被提升
- 深入理解javascript中的立即执行函数(function(){…})()
- Javascript自执行函数 (Immediately-Invoked Function Expression)
- 深入理解javascript中的立即执行函数(function(){…})()
- 深入理解JavaScript中的立即执行函数(function(){.....})()
- Javascript Function对象扩展之延时执行函数
- 深入理解javascript中的立即执行函数(function(){…})()