总是等效地使用一种或另一种吗?
这些在控制台中打印相同的东西
class Model extends Backbone.Model
defaults:
some: 'thing'
other: 'item'
model = new Model
console.log model.attributes
console.log model.toJSON()
总是等效地使用一种或另一种吗?
这些在控制台中打印相同的东西
class Model extends Backbone.Model
defaults:
some: 'thing'
other: 'item'
model = new Model
console.log model.attributes
console.log model.toJSON()
toJSON()是 JavaScript JSON 序列化程序在序列化对象时查找的标准方法。
在 Backbone 的上下文中,如果您在模型中覆盖toJSON,您可以更改保存时发送到服务器的值的格式。例如,您可以过滤掉诸如时间戳之类的只读字段。
attributes是包含模型数据的 JavaScript 对象,当您使用 model.set() 时会更改它。除非您不使用 set() 来更改值,否则您会绕过所有事件并失去骨干网的一些好处。因此,如果您知道自己在做什么,请仅直接使用属性。