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

				
时间: 2024-12-15 07:05:23

backbone之extend方法(刚明白了点)的相关文章

python中的 list (列表)append()方法 与extend()方法的用法 和 区别

append()方法使用 首先看官方文档中的描述: list.extend(L)             Extend the list by appending all the items in the given list; equivalent to a[len(a):] = L. 翻译成汉语就是:        通过将所有元素追加到已知list来扩充它,相当于a[len(a):]= L 举个例子,更能明白这句话 >>> la [1, 2, 3] >>> lb [

jquery的2.0.3版本源码系列(3):285-348行,extend方法详解

目录 1 . jquery extend的基本使用 通过285行的源码 jQuery.extend = jQuery.fn.extend = function() { ,extend方法要么是直接挂在到jQuery的静态方法,要么是挂载到fn上其实就是原型上(参考283行的赋值操作)的实例方法.extend方法可以传一个对象,类似于插件的方式,也可以传多个对象进行拷贝. <script src="js/jquery-2.0.3.js"></script> <

jQuery中extend方法

$.extend 用一个或多个其他对象来扩展一个对象,返回被扩展的对象. 参数类型1:只传入一个对象就是对jQuery的工具方法进行扩展. 1 $(function(){ 2 $.extend({ 3 console: function(sMsg){ 4 console.log(sMsg); 5 } 6 }); 7 $.console('jQuery');// jQuery 8 }); 参数类型2:传入多个对象就是对第一个对象进行扩展. 1 $(function(){ 2 var oTarget

jQuery.extend()方法和jQuery.fn.extend()方法

jQuery.extend()方法和jQuery.fn.extend()方法源码分析 这两个方法用的是相同的代码,一个用于给jQuery对象或者普通对象合并属性和方法一个是针对jQuery对象的实例,对于基本用法举几个例子: html代码如下: <!doctype html> <html> <head> <title></title> <script src='jquery-1.7.1.js'></script> <

老生长谈的$.extend()方法

jq的extend()是jq插件扩展很重要的部分,到这里证明是可以自己在jq的基础上,分为两种方法去扩展或开发,为jq本身添加一个方法,可以理解成扩展静态方法和自定义方法. 今天有看到一篇帖子,对这部分的理解十分独到,特意来分享一下. 首先:$.extend({}) 用这个方法给jquery本身增加一个hello的方法; <script type="text/javascript"> $(document).ready(function (){ $.extend({ hel

Python List extend()方法-用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

描述 extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表). 语法 extend()方法语法: list.extend(seq) 参数 seq -- 元素列表. 返回值 该方法没有返回值,但会在已存在的列表中添加新的列表内容. 实例 以下实例展示了 extend()函数的使用方法: #!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 123]; bList = [2009, 'manni']; aLi

jQuery的$.extend方法使用

一.需求 项目中有多个模块用到jQuery中的DataTable插件.开始开发时,各自使用自己的配置,导致表格的一些统一的配置被分散到各个模块中.现想将这些统一的配置提取到公共js中,以便于方便修改统一配置(做人做事都有一个度,不是非黑即白,水至清则无鱼.程序也是一样,都想将代码写成统一的,但是各模块的功能又是有区别的,所以总是统一.特性.再到统一部分). 二.方案 一般像这种有配置参数的jQuery的插件(DataTable.Flot等),都会有一个默认的配置,在实现中基本都会用到$.exte

自定义extend方法

最近计划封装一个原生的js控件,突然发现习惯了jquery的extend方法,使用原生JavaScript竟无从下手.所以只能自己尝试写一个类似jquery extend功能的方法了. 核心代码如下: function () {        var _isObject, _extend;        _isObject = function (o) { return Object.prototype.toString.call(o) === '[object Object]'; } //判断

JQuery添加扩展方法(理解$.extend(),与$.fn.extend()方法区别)

理解$.extend(),与$.fn.extend()方法区别 1.$.extend()方法 $.extend()方法在JQuery中有两个用法,第一次是扩展方法, 第二个方法是 jQuery.extend([deep], target, object1, [objectN]) 返回值:Object 把2个对象合并得到新的target,deep是可选的(递归合并) 合并 settings 和 options,修改并返回 settings. jQuery 代码: var settings = {