怎样实现React.createClass类似的功能

也是通过类似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");
回复
阅读 1.8k
1 个回答

这就看你把对象存在哪里的问题了,看样子是存在prototype上了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏