javascript - 如何公开属性对象的方法,就好像它们是对象自己的方法一样?JavaScript
问题描述
我有一个很大的冲动做这样的事情:
class A {
constructor(){}
age() { return 15; }
}
class B {
constructor() {
this.a = new A();
// DO SOMETHING THAT THIS IS POSSIBLE:
}
}
B b = new B();
b.age();
如何公开该方法,就好像它是 objectb
自己的方法一样?无论编号和名称如何,我都需要对属性的每个方法执行此操作。
注意:我不能使用继承。
解决方案
我会尝试实施B
为Proxy
.
class A {
constructor(){}
age() { return 15; }
}
const b = new Proxy(new A(), {
get: function(object, property) {
if (typeof object[property] === 'function') {
return object.property();
}
}
set: function(object, property) {}
}
您可以在MDN上阅读更多内容。
推荐阅读
- mysql - 创建 MySQL 表时更改数据目录
- c++ - 通过 C++ libssh 的 SSH 连接拒绝连接
- python - 无法通过阻止垃圾收集 tkinter 解决的单选按钮悬停错误
- database - Laravel 商店有不同的产品
- swift - 更改按钮的锚点,然后通过其锚点旋转按钮
- c++ - 错误:无法在 C++ 中将 'const CHAR**' {aka 'const char**'} 转换为 'LPCSTR' {aka 'const char*'}
- python-3.x - 使用 python pyscopg2 将值输入数据库时在插入命令中提供 %s 的原因是什么
- python - Sklearn FitFailedWarning:估计器拟合失败。ValueError: kth(=-9) 越界 (1)
- elasticsearch - 将反向嵌套排序回父聚合
- excel - 使 Excel 中的索引函数像在 Sheets 中一样工作