原型模式

/**
 * 原型模式
 * 1、优点
 *    a、可以让所有的实例对象共享它所包含的属性、方法
 *       因为这些属性、方法是绑定在实例对象中的 __proto__ 属性上的
 *       __proto__ 属性这个指针指向的就是构造函数自身
 */

function PrototypeMode () { }
PrototypeMode.prototype.name = 'tang'
PrototypeMode.prototype.sex = 'man'
PrototypeMode.prototype.job = 'web design'
PrototypeMode.prototype.speak = function () {
  console.log('hello...')
}

// 对象实例共享数据
const p1 = new PrototypeMode()
const p2 = new PrototypeMode()
console.log(p1)
console.log(p1.speak === p2.speak) // true
console.log(p1.name === p2.name) // true

p1 打印如下

image.png

构造函数、构造函数实例对象、构造函数原型属性 之间的关系

image.png

你可能感兴趣的:(原型模式)