8

总是等效地使用一种或另一种吗?

这些在控制台中打印相同的东西

class Model extends Backbone.Model
  defaults:
    some: 'thing'
    other: 'item'

model = new Model

console.log model.attributes
console.log model.toJSON()
4

1 回答 1

14

toJSON()是 JavaScript JSON 序列化程序在序列化对象时查找的标准方法。

在 Backbone 的上下文中,如果您在模型中覆盖toJSON,您可以更改保存时发送到服务器的值的格式。例如,您可以过滤掉诸如时间戳之类的只读字段。

attributes是包含模型数据的 JavaScript 对象,当您使用 model.set() 时会更改它。除非您不使用 set() 来更改值,否则您会绕过所有事件并失去骨干网的一些好处。因此,如果您知道自己在做什么,请仅直接使用属性。

于 2013-05-10T19:58:10.513 回答