zoukankan      html  css  js  c++  java
  • 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(); //静态方法是挂载在构造函数下面的,所以需要使用构造函数来直接调用

    
    
  • 相关阅读:
    第三次作业
    第三次作业
    第二次作业
    作业
    日本人の名前の読み方
    免费学习网站小记
    The MySQL server is running with the --secure-file-priv option so it cannot execute
    转载:mysql 通过命令行方式导出查询结果时,如何带列名?
    转载-------------------HTML常用的特殊符号总结
    img 标签内如何在src中引用变量
  • 原文地址:https://www.cnblogs.com/cumting/p/6837871.html
Copyright © 2011-2022 走看看