skip to content

JavaScript
对象链接的方法

对象链接也叫 OLOO ( Objects Linked to Other Objects ), 说的直白一点就是对象 A 链接对象 B,对象 A 可以访问对象 B 的属性和方法。

举个🌰,我们创建一个工具对象 BasicFormatter,然后通过不同的方式创建可以访问 BasicFormatter 的工具对象

const BasicFormatter = {
  format: function (msg) {
    return msg.toUpperCase()
  }
}

隐式

/* 
  Implicit 隐式
  通过 Object.create 方法创建一个以 BasicFormatter 为原型的对象
  这样就能通过 __proto__ 调用原型链上的 format 函数 
*/
const Foo = Object.create(BasicFormatter)
Foo.saySomething = function (msg) {
  console.log(this.format(msg))
}

Foo.saySomething('this is foo!')

显式

/* 
  Explicit 显式
  直接把需要链接的对象定义在自身上
*/
const Bar = {
  formatter: BasicFormatter,
  saySomething(msg) {
    console.log(this.formatter.format(msg))
  }
}

Bar.saySomething('this is bar!')