js面向对象之组合原型模式+构造函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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面向对象之组合原型模式+构造函数的主要内容,如果未能解决你的问题,请参考以下文章