day204-es6-笔记-Class-this

要点

class 构造函数constructorthis的指向
类的方法内部如果含有this,默认指向类的实例。单独使用方法时,可能报错。

  • 解决方法:
  1. 构造方法中绑定`this
  2. 使用箭头函数
  3. 使用Proxy,获取方法的时候,自动绑定this

    具体解决方法-3rd

function selfish (target) {
const cache = new WeakMap() // 弱引用
const handler = {
get (target, key) {
const value = Reflect.get(target, key)
if (typeof value !== 'function') {
return value
}
if (!cache.has(value)) {
cache.set(value, value.bind(target)) // 还是用到了bind
}
return cache.get(value)
}
}
const proxy = new Proxy(target, handler)
return proxy
}
/** 示例 */
const logger = selfish(new logger())
文章作者: lmislm
文章链接: http://lmislm.com/2019/08/05/2019-08-05/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LMISLMのBlog