javascript - 如何在构造函数中包装使用代理构造的对象?
问题描述
我知道这Proxy
可用于更改对象级行为,例如括号表示法获取和设置。我能找到的所有示例都显示了构造一个对象,然后用Proxy
调用包装它。有没有办法使用 ES6 类构造函数符号来定义一个类Foo
,这样构造函数返回的对象已经被包装在Proxy
,而不是构造函数的调用者也必须Proxy
单独调用?
提前致谢。
解决方案
如果我正确理解了您的问题,那么您想要做的是在构造函数中返回一个像这样的新代理:
class MyClass {
constructor() {
return new Proxy(this, {
// Proxy settings here
})
}
}
在此示例中,我们创建了一个新类,然后调用了一些属性。然后代理将打印出为简单起见调用的属性。
class MyClass {
constructor() {
return new Proxy(this, {
get: (target, key) => {
console.log('I am the key: ' + key)
return Reflect.get(target, key)
}
})
}
}
let c = new MyClass
c.awesome
c.billy
c.superTroopers
if (c instanceof MyClass) {
console.log('I am an instance of MyClass')
} else {
console.log('I am not an instance of MyClass')
}
推荐阅读
- javascript - 在 javascript 中解析 csv 文件并根据两个特定行提取字典
- wordpress - 网站迁移后的字体问题 - Wordpress
- css - 在 iOS 上双击网站链接的问题
- ruby - 从外部方法跳过 Ruby 迭代器
- git - 如何在目标提交后仅 git push 提交?
- android - 从 ExternalMediaDirs 在 GridView 中显示图像
- php - 如何处理从数据表发送的ajax数据
- javascript - 在 Express 中通过 URL 发送 JSON 数据
- python - 为什么值的长度与索引的长度不匹配?
- azure - 如何在发布管道中的 Azure DevOps 中输出 terraform 输出文件