Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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代理对象重置为默认值_Javascript - Fatal编程技术网

将JavaScript代理对象重置为默认值

将JavaScript代理对象重置为默认值,javascript,Javascript,我正在尝试管理一个必须用纯JS编写的小应用程序的状态。我认为代理对象是合适的,因为当某些属性更新时,我需要更新页面上的各种元素 假设我有以下代码: 所有示例的共享设置 const默认值={ 福:“酒吧” }; 常量状态={…默认值}; 代码体 const proxy=新代理(状态{ }); proxy.foo='baz' 我们有一个没有做任何事情的代理。但我想实现一个函数或陷阱,可以将代理对象的所有值重置回原始默认值 我想象着能够调用类似于proxy.reset()的东西 我尝试过类似的方

我正在尝试管理一个必须用纯JS编写的小应用程序的状态。我认为代理对象是合适的,因为当某些属性更新时,我需要更新页面上的各种元素

假设我有以下代码:

所有示例的共享设置
const默认值={
福:“酒吧”
};
常量状态={…默认值};
代码体
const proxy=新代理(状态{
}); 
proxy.foo='baz'
我们有一个没有做任何事情的代理。但我想实现一个函数或陷阱,可以将代理对象的所有值重置回原始默认值

我想象着能够调用类似于
proxy.reset()
的东西

我尝试过类似的方法,但似乎无法更新对象:

const proxy=新代理(状态{
获得(目标、道具){
如果(prop==“重置”){
目标={…默认值}
}
}
}); 
proxy.foo='baz'
代理重置

有什么想法吗?一开始我需要使用其他类型的对象吗?我试图避免简单地手动设置值,因为默认对象可能会随着我的开发而改变。感觉应该有一种优雅的方法来实现这一点。

会告诉您正在失去一个“指针”设置目标-您可以设置属性,但不能以此更改对象

const默认值={
福:“酒吧”
};
常量状态={…默认值};
const proxy=新代理(状态{
获得(目标、道具){
如果(prop==‘重置’){
分配(目标,默认值);
/*对于(默认情况下的var i){
目标[i]=默认值[i];
}*/
}
如果(prop=='get'){
回报目标;
}
}
});
proxy.foo='baz';
log(proxy.get);
proxy.reset;
log(proxy.get)