首页 > 代码库 > backbone之extend方法(刚明白了点)
backbone之extend方法(刚明白了点)
话说这个extend困扰我好几天了,今天终于想明白了点。
在之前先要知道什么是实例方法和静态方法。
首先定义一个类(js不支持类,但是别人都这么说,我也不知道为啥),如:var Person=function(){} //函数表达式或 function person(){}//函数声明,
然后在类上加.方法名,如 Person.say=function(){ console.log(‘I am a Person,I can say.‘) };这就是一个静态方法,调用时直接.方法名()就可以了。
在类原型上添加方法,如Person.prototype.cry=function(){ console.log(‘I shuai I proud‘)};这是个实例方法,调用时需要提前创建实例。即var haha=new Person; haha.cry();
话题回到extend,
除了Event类,其他类都含有extend方法,该方法在开发时是最常用的,就是为了生成子类的,我们的主角就是个类,他所创建的孩子就是子类。
extend方法接受两个参数:
参数1:protoProps,为子类的原型prototype提供属性 ,也就是创建实例方法
参数2:staticProps,为子类自身提供属性 ,也就是创建静态方法
例:
//模型的构造函数的扩展,相当于继承,则声称的实列可以使用其父类的方法 var M = Backbone.Model.extend({ //第一个参数写实列方法,第二个参数写静态方法 aaa : function(){ //实列方法 console.log(‘jt‘); } },{ bbb : function(){ //静态方法 console.log(‘lkm‘); } }); var model = new M; model.aaa(); //实列方法,直接使用实列来进行调用 M.bbb(); //静态方法是挂载在构造函数下面的,所以需要使用构造函数来直接调用
backbone之extend方法(刚明白了点)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。