一个突发奇想,如果要拦截class的属性著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。变化,除了用defineProperty转载请注明出处:www.tangshuang.net【原创不易,请尊重版权】进行重写,难道不能用Proxy吗?于是,【关注微信公众号:wwwtangshuangnet】【本文受版权保护】产生了下面这段代码。
本文作者:唐霜,转载请注明出处。【版权所有,侵权必究】【版权所有】唐霜 www.tangshu转载请注明出处:www.tangshuang.net未经授权,禁止复制转载。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转载请注明出处:www.tangshuang.net【转载请注明来源】xy(this)真是够风骚的操作。
著作权归作者所有,禁止商业用途转载。【本文受版权保护】【访问 www.tangshuang.n转载请注明出处:www.tangshuang.net【本文受版权保护】et 获取更多精彩内容】【版权所有】唐霜 www.tangshu著作权归作者所有,禁止商业用途转载。【本文受版权保护】ang.net

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