`

js之继承

阅读更多

     在js中,我们可以通过prototype属性,实现继承,从而达到代码的复用。下面我们将从两个案例中介绍如何通过prototype属性实现继承。

案例一:给String类添加成员方法

#arguments 函数参数列表
String.prototype.format=function(){
 if(!arguments) return this;
    if(arguments.length==1){  // 只有1个数据
       return this.replace(new RegExp("\\{0\\}", "g"), arguments[0]);
    }
    var tmp = this;
    for(var i=0;i<arguments.length;i++){
     tmp = tmp.replace(new RegExp("\\{" + i + "\\}", "g"), arguments[i]);
    }
    return tmp;
};
   当浏览器解析该js脚本后,所有的字符串实例都具备了format方法。测试代码如下:
#输出i am zhangsan
var str = "i am {0}";
alert(str.format("zhangsan"));
 
案例二:jquery自定义插件
    首先,理解jquery中的几个概念,jQuery.fn = jQuery.prototype是等价的,就像$是JQuery的简写一样,fn也是prototype的简写。
    1,为JQuery添加类方法:
#为jQuery类添加类方法,可以理解为添加静态方法。
$.extend({
    //初始化
    init:function(){
    },
   //销毁
   destory:function(){    
   }
})
等价于
(function($) {  
    $.init=function(){}
    $.destory=function(){}      
})(jQuery);  
或者
jQuery.init=function(){}
jQuery.destory=function(){}
    测试代码如下:
$.init();$.destory();
     2,为JQuery添加成员方法(自定义插件属于此范畴):
     jQuery.fn.extend = jQuery.prototype.extend,用于扩展JQuery成员方法。
#常用方式一
(function(){
     //相加
    $.fn.add = function(options){
           var defaults = {a:0,b:0};//默认参数
           var opts = $.extend(defaults,options);//options传入参数
           return opts.a + opts.b;
     }
     //相减
    $.fn.dev = function(options){
           var defaults = {a:0,b:0};
           var opts = $.extend(defaults,options);
           return opts.a - opts.b;
     }
})(jQuery);

#常用方式二
(function(){
     $.fn.extend({
          add : function(options){
             var defaults = {a:0,b:0};//默认参数
             var opts = $.extend(defaults,options);//options传入参数
             return opts.a + opts.b;
          },
          dev : function(options){
             var defaults = {a:0,b:0};
             var opts = $.extend(defaults,options);
             return opts.a - opts.b;
         }
   });
})(jQuery);
    ps:这样每个JQuery对象都可以使用add和dev方法了;
    测试示例如下:
var result = $(window).add({a:3});
alert(result);//输出3
    ps:将dom文档对象强转为JQuery对象方式。示例:$(window)
           $.extend(defaults,options);//传入则以传入的为准,未传入则以默认的为准;例如测试示例中,没有传入参数b,则以默认的为准(即b取值为0)。
   
   
 
分享到:
评论

相关推荐

    javascript 原生态js类继承实现的方式

    我们还知道,面向对象编程有三个重要的概念 - 封装、继承和多态。 但是在JavaScript的世界中,所有的这一切特性似乎都不存在。 因为JavaScript本身不是面向对象的语言,而是基于对象的语言。

    javascript控件开发之继承关系

    在这个主题中,“javascript控件开发之继承关系”主要探讨的是如何利用JavaScript的面向对象特性来构建和组织控件的层次结构,以及如何通过继承来实现代码的复用和模块化。 在JavaScript中,继承是基于原型...

    JavaScript学习之三 — JavaScript实现继承的7种方式

    继承是面向对象的核心特性之一,它允许一个对象(子类)获取另一个对象(父类)的属性和方法。本篇文章将深入探讨JavaScript实现继承的七种常见方式,帮助你更好地理解和运用这一概念。 1. 原型链继承(Prototype ...

    js继承.doc

    总结来说,JavaScript的继承机制是其灵活性的关键之一,但也带来了学习曲线。理解并掌握这些继承方式,可以帮助开发者更有效地构建可扩展和可维护的代码。通过不断实践和比较,我们可以更好地利用这些机制,提高代码...

    JS封装和继承-入门级

    JavaScript,作为一种广泛应用于Web开发的动态脚本语言,其核心特性之一就是基于对象。尽管它没有像Java或C++那样的传统类(class)概念,但JavaScript依然提供了强大的面向对象编程能力,这主要体现在封装、继承和...

    JavaScript继承

    此外,JavaScript的灵活性允许开发者选择基于类的继承方式,或者利用原型继承的微妙之处,实现更高效的设计。 4.1 为什么需要继承 继承的主要目的是代码复用和降低耦合度。通过继承,可以在已有类的基础上扩展功能...

    js javascript zInherit 对象 继承

    在JavaScript中,对象继承是实现面向对象编程(OOP)的关键特性之一。对象继承允许一个对象(子对象)从另一个对象(父对象或基对象)那里获取属性和方法,从而实现代码的复用和组织。`zInherit`是JavaScript中一种...

    JS继承的实现方式

    ### JS继承的实现方式 JavaScript作为一种灵活且功能强大的编程语言,支持多种继承模式。下面将详细介绍几种常见的继承实现方式,并探讨它们的特点与应用场景。 #### 一、原型链继承 **核心思想**: 将父类的实例...

    js继承的用法

    根据提供的文件信息,我们可以分析并总结出关于JavaScript继承的一些关键知识点。尽管提供的代码示例主要关注于使用jQuery插件初始化一个表格(grid),但这里我们将重点放在如何在JavaScript中实现继承这一主题上。...

    js继承的实现

    js没有特别明确的实现如何继承,但是能够通过特殊手段实现继承的,有四种方法

    JavaScript实现继承的几种方式

    继承是面向对象的核心特性之一,它允许一个对象(子类)从另一个对象(父类)获取属性和方法,从而形成类之间的层次结构。本篇文章将深入探讨JavaScript中实现继承的几种常见方式。 1. 原型链继承 JavaScript的原型...

    javascript中如何实现封装,继承和多态

    javascript中如何实现封装,继承和多态

    javascript中类和继承(代码示例+prototype.js)

    本文将深入探讨JavaScript中的类和继承,并结合`prototype.js`文件中的示例进行解析。 ### 类的概念与模拟 在JavaScript中,我们通常使用函数来模拟类的行为。一个函数可以看作是一个类的定义,通过`new`关键字来...

    javascript继承之工具函数二

    通过分析和实践`source.js`中的代码,我们可以更好地理解JavaScript的继承机制,掌握如何灵活地构建可扩展的对象模型。这不仅有助于提升我们的编程能力,也是面试中经常被问到的问题,因此深入学习和掌握这部分内容...

    js继承实现示例代码

    ### JavaScript继承实现示例 #### 知识点概述 在JavaScript中,继承是一种常见的对象间关系,它允许一个对象(子类)继承另一个对象(父类或超类)的属性和方法。通过继承,可以复用代码、提高程序的可维护性,并...

    JS继承.txtJS继承.txt

    寄生组合继承是最常用的继承模式之一,它避免了组合继承中调用两次父类构造函数的问题,并且保留了构造函数继承和原型链继承的优点。 ### 总结 以上就是JavaScript中几种常见的继承方式,每种方式都有其适用场景和...

    javascript 五种继承

    javascript 五种继承简介。

    js定义类 对象 构造函数,类的继承

    在提供的`ClassDefineAndExtends.js`文件中,可能包含了关于类定义和继承的示例代码。通过分析这个文件,我们可以看到实际应用中的类定义和继承实践,包括如何定义类,如何使用构造函数初始化对象,以及如何通过`...

    javascript继承之为什么要继承.docx

    JavaScript 继承之为什么要继承 JavaScript 中的继承机制是指子类继承父类的属性和方法,使得子类可以拥有父类的所有特征。继承是面向对象编程的基本机制之一,它可以实现代码复用、提高编程效率和增强代码的可维护...

Global site tag (gtag.js) - Google Analytics