我们说我有以下内容:
var foo = (function(){
var bar = 0;
return {
getBar: function(){
return bar;
},
addOne: function(){
bar++;
},
addRandom: function(rand){
bar += rand;
}
}
})();
Run Code Online (Sandbox Code Playgroud)
我有以下内容:
var foo2 = function(){
var bar = 0;
this.getBar = function(){
return bar;
};
this.addOne = function(){
bar++;
};
this.addRandom = function(rand){
bar += rand;
}
};
Run Code Online (Sandbox Code Playgroud)
执行函数a的唯一区别是new什么?
alert(foo.getBar()); //0
foo.addOne();
foo.addRandom(32);
alert(foo.getBar()); //33
var foo2_obj = new foo2;
alert(foo2_obj.getBar());//0
foo2_obj.addOne();
foo2_obj.addRandom(32);
alert(foo2_obj.getBar());//33
Run Code Online (Sandbox Code Playgroud)
他们两个都完全相同.
那么长远来看有什么区别?
一个人可以做什么,另一个不能?
以上小提琴演示:http: …