Javascript 动态设置类的getter和setter
我可以像这样创建一个类后,从字符串值外部设置该类的属性Javascript 动态设置类的getter和setter,javascript,Javascript,我可以像这样创建一个类后,从字符串值外部设置该类的属性 类{ //没什么 } 让storageClass=新类(); storageClass['value']='Hello World'; document.write(storageClass.value)您可以使用来处理动态获取和设置操作 类{ 构造函数(){ 返回新代理(此{ 获取(目标、道具、接受者){ 返回目标[''.'道具]; }, 设置(对象、道具、值){ obj[''''+prop]=值; console.log('valu
类{
//没什么
}
让storageClass=新类();
storageClass['value']='Hello World';
document.write(storageClass.value)代码>您可以使用来处理动态获取和设置操作
类{
构造函数(){
返回新代理(此{
获取(目标、道具、接受者){
返回目标[''.'道具];
},
设置(对象、道具、值){
obj[''''+prop]=值;
console.log('value changed');
}
});
}
}
让storageClass=新类;
storageClass['value']='Hello World';
document.write(storageClass.value)
您可以使用ES6代理
构造为所有属性创建一个获取/设置
,它允许您为对象实现低级方法(如获取
,在访问任何属性时调用)
有关详细信息,请参阅
请注意,作为一项ES6功能,它具有广泛但不通用的浏览器支持(例如,在Internet Explorer中不起作用),并且不能进行多填充,因为它使用的功能在旧版本的JavaScript中不存在。为什么说不能使用storageClass['value']='Hello World'
如果您使用getter和setter?我是否需要为每个属性设置一个set myCustomValue()
和get myCustomValue()
?是的,您需要这样做。是否有方法为所有属性设置一个set和get?检查我编辑的答案。我的目标是能够使用类似于storageClass['valueNumberTwo']='A Second Value'
若要添加更多set和get函数hanks,无论如何,我可以在类中而不是在声明时执行此操作?@Jack您可以从构造函数返回代理。