(function(){})(),function(){}()的相关探究
2015-09-07 18:28
309 查看
(function(){})()名为自执行匿名函数,可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许。
要注意,没有外部括号的情况下,即function(){}()函数不会自执行,这是一个匿名函数,但是没有赋值给一个变量
看下面的例子:
这是一个自执行函数,alert会执行,内部的参数外部无法调用
这个函数无法执行,会报错,匿名函数无法执行
但是赋值之后就可以执行:
函数可以执行相当于var text=function(){};text();
另外,如果给自执行函数赋值给一个变量,其结果与上面相同,变量的值为这个自执行函数的返回值,这里可以拿之前随笔里的一个例子:
这里text的值为:
要注意,没有外部括号的情况下,即function(){}()函数不会自执行,这是一个匿名函数,但是没有赋值给一个变量
看下面的例子:
var text = (function(){ alert("1"); var a = "aa"; })(); console.log(a);
这是一个自执行函数,alert会执行,内部的参数外部无法调用
function(){ alert("1"); var a = "aa"; }(); console.log(a);
这个函数无法执行,会报错,匿名函数无法执行
但是赋值之后就可以执行:
var text = function(){ alert("1"); var a = "aa"; }(); console.log();
函数可以执行相当于var text=function(){};text();
另外,如果给自执行函数赋值给一个变量,其结果与上面相同,变量的值为这个自执行函数的返回值,这里可以拿之前随笔里的一个例子:
var text = (function(){ var a = null; var b = function(){ return a ; }; var public = function(value){ //特权方法 }; public.prototype.setName = function(value){ a = value; return this; }; public.prototype.getName = function(){ return a; }; return public; //返回特权方法 })(); console.log(text)
这里text的值为:
相关文章推荐
- iOS如何把所有页面状态栏的字体颜色都设置为白色
- java基础 用arraylist做电话本
- iOS7自定义视图控制器过渡2-手势交互过渡
- Git中pull对比fetch和merge
- Docker基础技术:Linux Namespace(上)
- quick-cocos2d-x基于源码加密打包功能的更新策略(2)
- Java NIO原理图文分析及代码实现
- HDU5428质因数分解变形式
- quick-cocos2d-x基于源码加密打包功能的更新策略(1)
- POJ2528 Mayor's posters 线段树区间更新+离散化
- 最小生成树--matlab实现
- 1072. Gas Station (30)
- spring mvc3+默认首页设置问题
- 构造 Bubble Cup 8 - Finals D. Tablecity
- HDFS配置
- NFS安装和挂载
- 舟子传
- Eclipse ADT插件和Android SDK使用离线包升级笔记
- Spring配置切面事务
- php模式设计之 观察者模式