我在ES6中有一个Javascript类,我想写一个LoadFromJson方法。
问题是JSON.parse返回一个对象,我不能写:
//MyObject.loadFromJson method
loadFromJson(JsonString)
{
this=JSON.parse(jsonString); //INVALID//
}
我怎样才能在课堂上实现这一目标。 我知道我可以写:
myObject = JSON.parse(jsonString);
但这不是我想要的,我需要:
myObject = new MyObjectClass();
myObject.loadFromJson(JsonString);
我想实现一个"撤消机制"在我的对象中,并能够保存/恢复对象。
答案 0 :(得分:2)
您无法分配到this
。这是一个复制解析对象中所有属性的示例。
class MyObjectClass {
loadFromJSON(jsonString) {
const parsed = JSON.parse(jsonString);
for (const key in parsed) this[key] = parsed[key];
}
}
const myObject = new MyObjectClass();
myObject.loadFromJSON('{"a":2,"b":null,"c":"abc"}');
console.log(myObject);