也是通过类似React.createClass(spec)
的方式创建构造函数;但是创建好的构造函数new之后,每个实例对象的属性都应该是复制spec一份的而不是共享spec对象的属性,尤其是对象属性,这个要怎么实现?
如下列代码:
var constructor1 = M.createClass({
address:{
work:"shanghai"
},
changeWork:function(s){
this.address.work=s;
},
alert:function(){
alert(this.address.work);
}
});
var c1=new constructor1();
var c2=new constructor1();
c1.alert();//alert("shanghai");
c2.alert();//alert("shanghai");
/*下面的代码是错误的,正确结果应该是一个弹出beijing一个弹出shaghai,可是
我现在的代码就是如此,所以我想问问大家这个效果要怎么实现*/
c1.changeWork("beijing");
c1.alert();//alert("beijing");
c2.alert();//alert("beijing");
这就看你把对象存在哪里的问题了,看样子是存在prototype上了