Backbone中属性和toJSON方法之间的区别

时间:2013-05-10 19:51:17

标签: backbone.js

总是等同于使用其中一种吗?

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

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

model = new Model

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

1 个答案:

答案 0 :(得分:14)

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

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

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