首页 > 代码库 > js面向对象之组合原型模式+构造函数
js面向对象之组合原型模式+构造函数
我们都知道原型模式构建对象的最大优点就是共享,但是你知道吗,原型模式最大的缺点就是它最大的优点,如果共享的是方法的话使我们期望的一般也不会有什么影响,但是如果牵扯到其他的引用类型的话就会出现麻烦,看如下;
//原型的缺点 function Box() {} Box.prototype={ constructor:Box, name:‘Lee‘, age: 20, family:[‘哥哥‘,‘姐姐‘,‘妹妹‘] } var box1 = new Box(); var box2 = new Box(); alert(box1.family);//哥哥、姐姐、妹妹 box1.family.push(‘弟弟‘); 在第一个实例修改后的引用类型,保持了共享 alert(box1.family);//哥哥、姐姐、妹妹、弟弟 alert(box2.family)//哥哥、姐姐、妹妹、弟弟 //共享了box1添加后的引用类型
为解决这个为,我们可以使用组合原型模式+构造函数
js面向对象之组合原型模式+构造函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。