在Backbone.js'上设置属性的模式是什么;模型和视图
What is the pattern for setting attributes on Backbone.js' Models and Views?
我是Javascript框架世界的新手,我真的很喜欢Backbonej的工作方式。但是我有一个关于模型和视图的构造函数的问题。多年来,我一直在使用类似Java的语言进行开发,我习惯于定义这样的构造函数:
public Car(Manufacturer manufacturer, String model, Color color) {
this.manufacturer = manufacturer;
this.model = model;
this.color = color;
}
但我在文档和其他教程中看到,人们在定义模型或视图时通常不会声明特定的构造函数,他们只是构造这样的对象:
var car = new Car({manufacturer: ford, model: "Mustang", color: "red"});
定义这样的构造函数是错误的还是"丑陋的":
window.Car = Backbone.Model.extend({
initialize: function(manufacturer, model, color) {
this.manufacturer = manufacturer;
this.model = model;
this.color = color;
}
});
如果是,你能解释一下原因吗?我真的希望这不是一个愚蠢的问题,我没有发现任何相关的问题。
您可以传入多个参数而不是一个对象,但是您希望initialize函数看起来像这样:
window.Car = Backbone.Model.extend({
initialize: function(manufacturer, model, color) {
this.set({
manufacturer: manufacturer,
model: model,
color: color
});
}
});
您需要使用set
来访问attributes对象。通过使用this
,可以将属性直接附加到模型。
主干使用attributes对象的原因是,当您更改属性时,它可以自动触发事件。这也是一种在方法中封装字段的方法,就像创建一样
private Manufacturer manufacturer;
和
public Manufacturer getManufacturer()
在java中。
这类似于在Java中将上下文对象传递给方法(在无状态环境中需要将某些状态传递给方法的情况下执行)。恰好该方法是一个构造函数。我不认为这有一个具体的官方模式。这是javascript中常见的范例。
相关文章:
- 不确定我在PHP AJAX中使用的是什么开发模式
- 将JavaScript检测与MVC4显示模式集成的最佳方式是什么
- 在Backbone.js'上设置属性的模式是什么;模型和视图
- 使用 ES6 模块而不是显示模块模式的额外优势是什么?
- 在 Node.js 中表示状态的普遍接受模式是什么?
- 在vimperator中手动切换到“提示”模式的命令是什么
- 从嵌套数组中获取唯一元素的 JS 模式是什么
- 创建新模型的正确控制器/视图模式是什么
- 在javascript中拆分字符串的正确模式是什么,只留下a-z个单词
- 最好的1-1聊天模式是什么?(AJAX/CI/JQ)
- 使用生成器和迭代器管理流的正确模式是什么
- 文本的正确模式是什么
- 在这个Backbone TodoMVC示例中,这些模式是什么?
- 双64位最小值的位模式是什么?
- 在jquery插件中添加简单的公共方法的最佳模式是什么?
- 在JS模块之间进行数据封送的好模式是什么?
- 开发服务器端node.js的良好架构/模式是什么?
- 这个javascript语法/模式是什么意思
- 执行一段时间后重复的函数的良好模式是什么
- 在JavaScript中,这种情况下的首选模式是什么?