用Proxy拦截class,这种骚操作闻所未闻!

广告位招租
扫码页面底部二维码联系

一个突发奇想,如果要拦截class的属性原创内容,盗版必究。【未经授权禁止转载】变化,除了用defineProperty原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.net进行重写,难道不能用Proxy吗?于是,本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。产生了下面这段代码。

【版权所有】唐霜 www.tangshu【关注微信公众号:wwwtangshuangnet】本文作者:唐霜,转载请注明出处。ang.net未经授权,禁止复制转载。
class A {
  name = 'aaa'
  age = 0
  constructor() {
    return new Proxy(this, {
      get: (_, key) => this[key],
      set: (_, key, value) => {
        console.log(key, value)
        this[key] = value
        return true
      },
    })
  }
  say() {
    console.log(this.name, this.age)
  }
  update(key, value) {
    this[key] = value
  }
}

在构造函数中return new Pro未经授权,禁止复制转载。【作者:唐霜】xy(this)真是够风骚的操作。

转载请注明出处:www.tangshua原创内容,盗版必究。【本文首发于唐霜的博客】ng.net著作权归作者所有,禁止商业用途转载。【转载请注明来源】【本文受版权保护】
已有1条评论
  1. rxliuli 2020-12-01 12:04

    一般吾辈会用 class static function 或者注解来解决