为什么80%的码农都做不了架构师?>>>   

<script>function Person(name, age) {this.name = name;this.age = age;this.family = ["father" , "mather" , "sister"] ;}Person.prototype = {constructor: Person,say : function () {return "name : " + this.name + "age: " + this.age;}} ;var p1 = new Person("zhangsan", 19);console.log(p1.family);p1.family.push("brother") ;console.log(p1.family) ;var p2 = new Person("lisi" , 20) ;console.log(p2.family) ;</script>

输出:

["father", "mather", "sister"]
["father", "mather", "sister", "brother"]
["father", "mather", "sister"]

注意,数组是引用类型,如果把数组放在原型中,对p1的family的改动会修改p2。所以将引用类型放在构造函数中。

转载于:https://my.oschina.net/itfanr/blog/313414

javascript组合模式创建对象相关推荐

  1. JavaScript组合模式是什么

    JavaScript组合模式是什么 1.组合模式将对象组合成树形结构,以表示部分-整体的层次结构. 2.除了用来表示树形结构外,组合模式的另一个优点是通过对象的多态性表达,用户可以一致地使用单个对象和 ...

  2. JavaScript 组合模式的实现

    组合模式指的是,每个面向对象效果,在开启的时候,都需要先实例化对象,然后调用实例化对象初始化方法开启.有多个实例对象,我们就需要实例化多次并调用多次初始化方法. 如果将初始化方法比作是一个开灯的开关, ...

  3. JavaScript之面向对象学习六原型模式创建对象的问题,组合使用构造函数模式和原型模式创建对象...

    一.仔细分析前面的原型模式创建对象的方法,发现原型模式创建对象,也存在一些问题,如下: 1.它省略了为构造函数传递初始化参数这个环节,结果所有实例在默认的情况下都将取得相同的属性值,这还不是最大的问题 ...

  4. JavaScript设计模式总结-组合模式

    使用场景 1.对象存在整体-部分的结构,如树.数组等: 2.使用者希望对数据结构中的所有对象统一处理. 需要注意的是 1.组合模式所谓的结构并非"继承",而是"包含&qu ...

  5. javascript中原型模式创建对象特点分析

    在javascript中,我们创建的每个函数都有一个prototype(原型)属性.这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法.使用原型对象的好处 ...

  6. JavaScript学习(四十二)—利用工厂模式创建对象以及工厂模式创建对象的不足

    JavaScript学习(四十二)-利用工厂模式创建对象以及工厂模式创建对象的不足 一.利用工厂模式创建对象 工厂模式是JavaScript中的一种设计模式,它的作用是批量创建具有同种属性的对象. 格 ...

  7. 设计模式(10)[JS版]-JavaScript如何实现组合模式???

    目录 1 什么是组合模式 2 主要参与者 3 代码实现 4 应用实例 4.1 表单验证 4.1 图片阅读器 5 总结 1 什么是组合模式 组合模式允许创建具有属性的对象,这些对象是原始项目或对象集合. ...

  8. JavaScript设计模式(三):结构型设计模式-外观模式、适配器模式、代理模式、装饰者模式、桥接模式、组合模式、享元模式

    JavaScript设计模式 - 结构型设计模式 套餐服务-外观模式 外观模式(Facade) 水管弯弯-适配器模式 适配器模式(Adapter) 适配异类框架 参数适配 牛郎织女-代理模式 代理模式 ...

  9. javascript设计模式-组合模式

    1 <!DOCTYPE HTML> 2 <html lang="en-US"> 3 <head> 4 <meta charset=&quo ...

最新文章

  1. windows下增加python的库搜索路径
  2. BZOJ3068 : 小白树
  3. 安装两个硬盘时应如何跳线?
  4. 深度学习的数学 (4)张量、矩阵、导数
  5. 深度神经网络模型压缩方法总结
  6. 邯郸学院计算机专业是本科还是专科,邯郸学院是大学吗 是本科还是专科
  7. OS- -内存之虚拟内存
  8. hough变换检测圆周_hough变换原理以及实现(转载)
  9. c语言sizeof(test),解析C语言中的sizeof
  10. websocket动态添加广播路径_数据可视化WebSocket实现聊聊我的实现思路
  11. NAT技术与代理服务器
  12. 计算机网络面试基础知识
  13. 26字母 导航 android,Android自定义View实现字母导航栏的代码
  14. Kaldi声学模型训练
  15. Parallels Desktop 12上win7复制键无效
  16. VxWorks 引导程序(BIOS/BootLoader/Bootrom)
  17. 群辉DSM6.2下载 Transmission中文版介绍以及出现 syntax error near unexpected token 问题解决
  18. 【深度解刨C语言】符号篇(全)
  19. ARMv8 A64 汇编中立即数范围问题分析
  20. Simpsons’ Hidden Talents(扩展KMP)

热门文章

  1. ROS中执行roslaunch后,显示功能包不存在的解决方法
  2. 微信小程序表格实现隔行换色
  3. 奋斗吧之“和loser对话”小故事
  4. L02 Laravel 教程 - Web 开发实战进阶 - 笔记
  5. C语言,函数没有return,返回类型就是void的么?
  6. css里的deg,CSS角度单位:deg、grad、rad、turn
  7. Mysql统计每个小时或半小时数据的数量
  8. 三菱服务器显示d1d2,三菱PLC指令SMOV D2 K2 K2 D1 K3详解
  9. python能调用身份证读卡器吗_最近的项目中用到读卡器,用的华视身份证阅读器,附上SDK使用手册...
  10. quartus II 18.1 下载