Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态设置类的getter和setter_Javascript - Fatal编程技术网

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您可以从构造函数返回
代理。