backbone之extend方法(刚明白了点)

Posted cumting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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方法(刚明白了点)的主要内容,如果未能解决你的问题,请参考以下文章

backbone和underscore中的extend

Backbone.extend函数究竟是如何工作的?

Backbone.View.extend之后的构造函数实例化经历了一些什么处理

backbone--部分总结

如何在 Backbone 中获取单个模型?

是否可以使用Backbone获取本地JSON文件?