我正在通过教程学习backbone.js。我尝试了一些代码,看起来很奇怪。我首先初始化了src
为thesource.jpg
的模型实例,对模型实例执行了console.log
,然后将src
属性设置为aaa
,后跟{ {1}}。
在javascript控制台中,我看到对于两个输出,console.log
是相同的src
。他们不应该不同吗?
JS代码
aaa
控制台输出
答案 0 :(得分:1)
在Google Chrome中记录对象时,在控制台中展开其属性时会检索其状态,而不是在记录它们时。
您可以尝试记录克隆:
console.log(JSON.parse(JSON.stringify(myPhoto.attributes)));
myPhoto.set({src:'aaaa'});
console.log(JSON.parse(JSON.stringify(myPhoto.attributes)));
答案 1 :(得分:1)
上面的答案有效,但我只想指出Backbone的功能已基本完成。您可以使用toJSON
来克隆所有属性并返回一个对象。
console.log(myPhoto.toJSON());
myPhoto.set({src: 'aaaa'});
console.log(myPhoto.toJSON());
这将显示一个浅的副本,因此它不完全相同,但输入的次数较少,并且在您正在寻找的情况下仍可使用。