Backbone 学习笔记三 extend

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攻击

 

你可能感兴趣的:(backbone)