方法一function kk(){
this.i=0
}
kk.prototype.add=function(){
alert(++this.i)
}
kk.prototype.clear=function(k){
this.i=k
}
var p=new kk()
p.add();
p.add();
p.clear(12)
p.add();
})
方法二var a=function(){
var i=0;
return {
add:function(){alert(++i)},
clear:function(k){i=k}
}
}()
a.add()
a.add()
a.clear(12)
a.add()问题:
对于方法一,方法二我都可以建立自己的属性和方法,那哪种写法更好更标准?或者说这两种写法个适用于什么样的情况下。
this.i=0
}
kk.prototype.add=function(){
alert(++this.i)
}
kk.prototype.clear=function(k){
this.i=k
}
var p=new kk()
p.add();
p.add();
p.clear(12)
p.add();
})
方法二var a=function(){
var i=0;
return {
add:function(){alert(++i)},
clear:function(k){i=k}
}
}()
a.add()
a.add()
a.clear(12)
a.add()问题:
对于方法一,方法二我都可以建立自己的属性和方法,那哪种写法更好更标准?或者说这两种写法个适用于什么样的情况下。
var p=(function(){})()
var p=function (){}()
var p=new function(){}()这三种写法有什么不同我在方法二中运行的效果都一样
好处是可以new 多个对象var a=function(){
var i=0;
return {
add:function(){alert(++i)},
clear:function(k){i=k}
}
}()
方法2里面这个应该是 使用了一个函数自执行
这个地方应该少了一对括号吧?
第二种应该只实例化了一个对象.