每周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) :连着使用 getter 和 setter。
Delegate#fluent(name) :判断调用时,参数是否是 undefined ,是则返回该属性对应值,不是则去设置该属性的值。
结语
学习了,学习了,结合 koa 的 context 可以更加了解。