`
whiteangell
  • 浏览: 11136 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

JavaScript几种继承继的方法总结

阅读更多
总结出JavaScript有以下几种继承继的方法:

1.对象冒充方法,可以多承继;

如:
 A=function()
  {
    this.code="001";
    this.name="whiteangell";
    this.getCode=function()
    {
      return this.code;
    }
    this.getName=function()
    {
     return this.name
    }
  };

  B = function()
  {
      this.newMethod=A;
      this.newMethod();
      this.age=20;
      this.getAge=function()
      {
        return this.age;
      }

  };
  var bb = new B();
  alert(bb.getName());

2.原型链法;

如:
 A=function()
  {
    this.code="001";
    this.name="whiteangell";
    this.getCode=function()
    {
      return this.code;
    }
    this.getName=function()
    {
     return this.name
    }
  };
  B = function()
  {      
      this.age=20;
      this.getAge=function()
      {
        return this.age;
      }
  };
  B.prototype=new A();
  var bb = new B();
  alert(bb.getName());

3.拷贝复制法
如:
 
  Object.extend = function(destination,source)
    {
        for ( pro in source )
        {
            destination [pro] = source [pro];
        }
        return destination ;
    };  
  A = function(){};
  A.prototype =
  {
    code:"001",
    name:"whiteangell",
    getCode:function()
    {
      return this.code;
    },
    getName:function()
    {
     return this.name
    }
  };
  B= function(){};
  B.prototype= Object.extend({
  age:20,
      getAge:function()
      {
        return this.age;
      }
  },A.prototype);  
  var bb = new B();
  alert(bb.getName());


4.call()方法,可以多承继;

如:

  A=function()
  {
    this.code="001";
    this.name="whiteangell";
    this.getCode=function()
    {
      return this.code;
    }
    this.getName=function()
    {
     return this.name
    }
  };
  B = function()
  {      
      A.call(this);
      this.age=20;
      this.getAge=function()
      {
        return this.age;
      }

  };
  var bb = new B();
  alert(bb.getName());

5.apply()方法,可以多承继;

如:
  A=function()
  {
    this.code="001";
    this.name="whiteangell";
    this.getCode=function()
    {
      return this.code;
    }
    this.getName=function()
    {
     return this.name
    }
  };
  B = function()
  {      
      A.apply(this);
      this.age=20;
      this.getAge=function()
      {
        return this.age;
      }
  };
  var bb = new B();
  alert(bb.getName());


分享到:
评论
4 楼 xuyao 2008-12-15  
lz说的太复杂,简单的说就是执行了A函数,其实js中没有对象的概念,只有函数的。之所以有个new就是为了类似java
3 楼 whiteangell 2008-12-12  
this.newMethod()相当于new A()。当构造对象B的时候,调用newMethod相当于启动A的构造函数,注意这里的上下文环境中的this对象是B的实例,所以在执行A构造函数脚本时,所有A的变量和方法都会赋值给this所指的对象,即B的实例,这样子就达到B继承了A的属性方法的目的。
2 楼 ftuo 2008-12-12  
在线啊。刚才是在JavaEye第一个帖子,呵呵。当然这是第二个。
希望给我解疑下。
1 楼 ftuo 2008-12-12  
第一个例子:有this.newMethod();  
为什么要加这句话呢。不加却出错。能解释一下吗。

相关推荐

    JavaScript实现继承的几种方式

    以上就是JavaScript中常见的几种继承方式,每种都有其优缺点。在实际开发中,可以根据项目需求和性能考虑选择合适的方法。随着语言的发展,ES6引入了类(class)的概念,虽然在语法上更像传统的面向对象语言,但其...

    javascript的几种继承方法介绍_.docx

    每种继承方式都有其适用场景,开发者应根据实际需求选择合适的方法。例如,如果需要复用方法,可能更倾向于原型链继承;如果需要初始化特定的实例属性,构造函数继承可能更合适。组合继承则在大多数情况下提供了一种...

    【JavaScript源代码】JavaScript中的几种继承方法示例.docx

    ### JavaScript中的几种继承方法示例 #### 一、原型链继承 **原理**: 在JavaScript中,原型链继承是一种实现继承的方式,它通过让子类的原型对象指向父类的一个实例来实现属性和方法的共享。 - **核心概念**: 每个...

    【JavaScript源代码】JavaScript继承的三种方法实例.docx

    ### JavaScript继承的三种方法实例详解 #### 一、概述 在JavaScript中,虽然原生语言层面没有提供传统意义上的“类”这一概念,但它...理解并掌握这几种继承方式对于编写高质量、可维护的JavaScript代码至关重要。

    【JavaScript的9种继承实现方式归纳】js实现继承的几种方式.pdf

    JavaScript 的 9 种继承实现方式归纳 JavaScript 中的继承方式是基于原型的,与基于类的编程语言,如 C++ 和 Java,截然不同。JavaScript 的灵活性使得其实现继承的方式非常多样化。本文将介绍 JavaScript 中的 9 ...

    JavaScript定义类的几种方式总结

    JavaScript定义类的几种方式包括工厂方式、构造函数和原型方式,每种方法都有其特点和适用场景,接下来我们将详细探讨。 工厂方式是最早期的面向对象编程在JavaScript中的实践之一。使用工厂方式定义类,本质上就是...

    Javascript中的几种继承方式对比分析_.docx

    Javascript中的几种继承方式对比分析_.docx

    javascript的几种继承方法介绍

    下面将详细介绍一下JavaScript中常见的几种继承方法。 1. 原型链继承 原型链继承是基于JavaScript的原型对象所建立的一种继承方式。在JavaScript中,每个构造函数都有一个原型对象(prototype),原型对象包含一个...

    JavaScript中的继承之类继承_.docx

    为了解决这些问题,可以采用以下几种改进方案: 1. **使用`Object.create()`**:通过`Object.create()`来设置构造函数的原型,避免直接实例化父类。 2. **显式调用父类构造函数**:在子类构造函数中通过`Parent.call...

    JavaScript继承机制探讨及其应用.pdf

    本文通过分析JavaScript的继承机制,提供了几种继承的实现方式,并分析了各自的优缺点和使用场景。同时,通过分析John Resig开发的知名开源框架中的核心源代码,展示了继承机制在JavaScript框架级项目开发中的应用。...

    浅谈Javascript实现继承的方法

    下面,我们将探讨在Javascript中实现继承的几种主要方法,并对每种方法进行详细的解释。 1. 原型链继承 原型链继承是Javascript中最基本的继承方式。它利用了原型对象的特性,即所有对象实例共享同一个原型对象上的...

    javascript继承之工具函数二

    `source.js`文件很可能是实现了上述某一种或几种继承模式的工具函数,可能包括但不限于以下内容: - 一个自定义的`extend`函数,用于创建子类并继承父类的属性和方法。 - 使用`Object.create`或`__proto__`来设置...

    Javascript中的几种继承方式对比分析

    虽然JavaScript被许多人认为不是一种传统的面向对象语言,但它的灵活性和强大的继承模式使其在Web开发中扮演着关键角色。在JavaScript中,有多种实现继承的方式,每种都有其优缺点,适用于不同的场景。 首先,我们...

    javascript关于继承解析_.docx

    这里我们将深入探讨几种主要的继承方式:原型式继承、寄生式继承和寄生组合式继承。 ### 原型式继承 在JavaScript中,对象有一个名为`__proto__`的内部属性,指向创建该对象的构造函数的原型。原型式继承利用了这...

    javascript 继承实现方法

    以下就是几种在JavaScript中实现继承的方式。 对象冒充(Pseudoclassical Inheritance): 对象冒充是利用构造函数和函数的call方法来实现的。构造函数使用this关键字定义属性和方法,而call方法则可以调用指定对象...

    Javascript编程中几种继承方式比较分析

    随后,文章介绍了几种主流的继承方式: 1. 原型链继承是JavaScript中最基本的继承方式。它涉及到一个子类型的原型被设置为一个父类型实例的操作。通过这种方式,子类型可以继承父类型的属性和方法。但是,原型链...

    再谈javascript原型继承

    Javascript原型继承是一个被说烂掉了的话题,但是自己对于这个问题一直没有彻底理解,今天花了点时间又看了一遍《Javascript模式》中关于原型实现继承的几种方法,下面来一一说明下,在最后我根据自己的理解提出了一...

Global site tag (gtag.js) - Google Analytics