Bru*_*ris 4 javascript backbone.js
在backbone.js ToDos示例中,initializeToDo构造函数的方法将title属性设置为默认标题.
这不是不必要的吗?我认为默认值是他们自动分配?或者我错过了什么?
var Todo = Backbone.Model.extend({
// Default attributes for the todo item.
defaults: function() {
return {
title: "empty todo...",
order: Todos.nextOrder(),
done: false
};
},
// Ensure that each todo created has `title`.
initialize: function() {
if (!this.get("title")) {
this.set({"title": this.defaults().title});
}
},
///...
);}
Run Code Online (Sandbox Code Playgroud)
仅当没有相应的属性传递给构造函数时,才会应用默认值.在这种情况下,可能确保使用空字符串作为标题创建的项目显示其中的内容.相比
var Todo1 = Backbone.Model.extend({
defaults: function() {
return {
title: "empty todo...",
done: false
};
},
initialize: function() {
if (!this.get("title")) {
this.set({"title": this.defaults().title});
}
}
});
var t1 = new Todo1({
title: ""
});
Run Code Online (Sandbox Code Playgroud)
同
var Todo2 = Backbone.Model.extend({
// Default attributes for the todo item.
defaults: function() {
return {
title: "empty todo...",
done: false
};
}
});
var t2 = new Todo2({
title: ""
});
Run Code Online (Sandbox Code Playgroud)
t1.get('title')将空待办事项...和t2.get('title')将是一个空字符串.不向两个构造函数传递任何参数确实会使用默认值.
还有一个小提琴http://jsfiddle.net/nikoshr/CeEDg/
| 归档时间: |
|
| 查看次数: |
758 次 |
| 最近记录: |