您的位置:首页 > 其它

(function(){})(),function(){}()的相关探究

2015-09-07 18:28 309 查看
  (function(){})()名为自执行匿名函数,可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许。

要注意,没有外部括号的情况下,即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的值为:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: