对象链接也叫 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!')