骨干模型默认值-todos.js示例中不必要的代码
Backbone Model defaults - unnecessary code in todos.js example?
在backbone.js ToDos示例中,ToDo构造函数的initialize
方法将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});
}
},
///...
);}
只有在没有向构造函数传递相应属性的情况下,才会应用默认值。在这种情况下,可能是为了确保用空字符串作为标题创建的项目显示出其中的内容
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: ""
});
带有
var Todo2 = Backbone.Model.extend({
// Default attributes for the todo item.
defaults: function() {
return {
title: "empty todo...",
done: false
};
}
});
var t2 = new Todo2({
title: ""
});
t1.get('title')
将为空和CCD_ 4将是一个空字符串。不向两个构造函数传递任何参数确实会使用默认值。
和小提琴http://jsfiddle.net/nikoshr/CeEDg/
相关文章:
- 骨干模型默认值-todos.js示例中不必要的代码
- RadTreeView在IE11不必要的触发事件中不起作用
- “期望赋值或函数调用,而是看到了表达式.” - 不必要的控制台.log
- 避免在 Angular.js 中对绑定值进行不必要的评估
- 避免在视差滚动效果中对图像进行不必要的缩放
- Redux防止不必要的渲染
- 钛-圆形表视图看起来不像代码
- GAS:如何允许其他人在不共享代码的情况下使用您的库
- Javascript - 预填充 cookie 信息,以在指向外部站点的链接上交叉传递不必要的登录页面
- AngularJS路由:URL中不必要的参数
- 我想显示数据库中的数据.如果我们新添加一个表单数据,我想附加显示的新帖子而不使用代码点火器刷新
- 简化这个不必要的JavaScript
- Jquery 表单验证 - 如何在验证之前不执行代码
- 保存不使用代码的 JSON
- ScriptControl.AddCode 而不执行代码
- 节奏和余烬,我如何让它在所有路由中工作而不重复代码
- 如何在使用 Sentry 时避免来自第三方扩展的不必要的崩溃报告
- 单击时播放音频时出现不必要的延迟
- 从jQuery的代码中删除不必要的函数
- Jquery UI添加不必要的代码和破坏的东西