每周npm模块源码解读:delegates
2018-12-22 字数统计:1.5k 字 阅读时长 ≈ 1 分钟

周2018.12.17 ~ 2018.12.23

前言

模块名:delegates

github: https://github.com/tj/node-delegates

描述:方法和访问器委托的工具

适合人群:至少看过一遍源码

正文

用函数的形式调用,实则是用 new 来实例。

Delegate(proto, target) :实例构造函数 Delegator

Delegate.auto(proto, targetProto, targetProp) :实例构造函数 Delegator ,然后使用 Object.getOwnPropertyNames 来得到 targetProto 的自身属性的属性名(包括不可枚举但不包括Symbol值作为名称的属性)。将通过 Object.getOwnPropertyDescriptor 得到 taegetProto 的每个属性的描述符,接着是数据描述符还是存取描述符,进行相应的操作。

Delegate#method(name) :将 target 的此方法挂载到 proto 上。

Delegate#getter(name) :使用 __defineGetter__ 将属性挂载到 proto 上。使用 Object.defineProperty

Delegate#setter(name) :使用 __defineSetter__ 将属性挂载到 proto 上。

Delegate#access(name) :连着使用 gettersetter

Delegate#fluent(name) :判断调用时,参数是否是 undefined ,是则返回该属性对应值,不是则去设置该属性的值。

结语

学习了,学习了,结合 koacontext 可以更加了解。