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

jua*_*tas 8 backbone.js

总是相当于使用一个或另一个?

这些打印机在控制台同样的东西

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

model = new Model

console.log model.attributes
console.log model.toJSON()
Run Code Online (Sandbox Code Playgroud)

小智 14

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

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

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