extend
Backbone.Model.extend(properties,[classProperties])
创建自己的模型类,可以扩展Backbone.Model并提供实例属性,以及可选的可以直接注册到构造函数的类属性
extend用于设置正确的原型链,可以深度扩展
var Note = Backbone.Model.extend({
initialize:function(){ ... }, //构造函数
author:function(){},
coordinates:function(){},
allowedToEdit:function(account) {
return true;
}
});
var PrivateNote = Note.extend({
allowedToEdit:function(account){
return account.onws(this);
}
})
Javascript 没有直接提供调用父类的方式,如果你要重载原型链中上层定义的同名函数,并且你想调用 父对象的实现,这时需要明确的调用 它
var CSSercom = Backbone.Model.extend({
set: function(attributes,options) {
Backbone.Model.prototype.set.call(this,attributes,options);
}
})
constructor/initialize 构造函数,
当创建模型实例时,可以传入属性初始值,这些值会被set到模型。如果定义了initialize 函数时,会在模型创建后招行
new Site({
title:"Csser,关注Web后端技术",
author:"一回"
});
get方法
model.get(attribute)
从模型取出当前值
csser.get(attribute);
set model.set(attributes,[options])
向模型设置一个或多个模型属性。如果任何一个属性改变了模型的状态,在不传入{slient:true} 选项参数的情况下,会触发change 事件。 可以绑定这个事件到某个属性,
csser.set({title:"Csser",content:"http://www.csser.com"});
如果模型有validate方法,那么属性验证会在set之前执行,如果验证失败,模型不会发生变化。这时set会返回false... 也在以在选项中传入error回调,,,, 不触发error事件
escape model.escape(attribute)
与get 类似,但返回模型属性值的html转义后的版本。如果将数据从模型插入html,使用escape取数据可以避免XSS攻击