骨干js getter与模型属性的直接访问之间的区别

Pet*_*_ch 8 javascript backbone.js

是什么是backbone-js使用语法的优势/原因

//using a Model instance called model

model.get('attribute')
Run Code Online (Sandbox Code Playgroud)

并不是

model.attribute
Run Code Online (Sandbox Code Playgroud)

我刚开始使用骨干,我总是试图直接访问属性

Der*_*ley 12

如果查看源代码,该get函数只需调用this.attributes[name].

http://backbonejs.org/docs/backbone.html#section-31

但是,好处至少有两倍:

1)一致的API,可减少您编写的代码量

2)能够覆盖该get方法并提供更复杂的访问控制

例如,有几个主干插件可以覆盖模型的工作方式,以提供嵌套的模型功能.他们很容易让你写一个像这样的get方法:

model.get("submodel.attr")

并具有解析出attr的的submodel子模型.如果没有get方法,那么使它与API保持一致会更加困难.

不过,这样做的潜在好处是封装.直到JavaScript提供真正的get/set属性,让我们为getter和setter编写代码,我们将会遇到像Backbone getset.