码迷,mamicode.com
首页 > Web开发 > 详细

js面向对象之组合原型模式+构造函数

时间:2017-05-13 14:27:38      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:面向   函数   struct   family   logs   添加   对象   div   tor   

   我们都知道原型模式构建对象的最大优点就是共享,但是你知道吗,原型模式最大的缺点就是它最大的优点,如果共享的是方法的话使我们期望的一般也不会有什么影响,但是如果牵扯到其他的引用类型的话就会出现麻烦,看如下;

 //原型的缺点
           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面向对象之组合原型模式+构造函数

标签:面向   函数   struct   family   logs   添加   对象   div   tor   

原文地址:http://www.cnblogs.com/zhangxiaofei/p/6848808.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!