delegates 基本用法就是将内部对象的变量或者函数绑定在暴露在外层的变量上,直接通过 delegates 方法进行如下委托,基本的委托方式包含:
getter:外部对象可以直接访问内部对象的值
setter:外部对象可以直接修改内部对象的值
access:包含 getter 与 setter 的功能
method:外部对象可以直接调用内部对象的函数
const delegates = require('./index');
const petShop = {
dog: {
name: '旺财',
age: 1,
sex: '猛汉',
bar() {
console.log('bar!');
}
},
}
// 将内部对象 dog 的属性、函数
// 委托至暴露在外的 petShop 上
delegates(petShop, 'dog')
.getter('name')
.setter('age')
.access('sex')
.method('bar');
// 访问内部对象属性
console.log(petShop.name)
// => '旺财'
// 修改内部对象属性
petShop.age = 2;
console.log(petShop.dog.age)
// => 2
// 同时访问和修改内部对象属性
console.log(petShop.sex)
// => '猛汉'
petShop.sex = '公主';
console.log(petShop.sex);
// => '公主'
// 调用内部对象函数
petShop.bar();
// 'bar!'