`
隐形的翅膀
  • 浏览: 484544 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript 对象实现继承的几种方式

阅读更多
先定义一个对象classA,我们要实现一个新对象,继承classA
function classA(sColor){
   this.color=sColor;
   this.sayColor=function(){
     alert(this.color);
   }
}


1. 用call方法实现继承
function classC(sColor,sName){
   classA.call(this,sColor);
   this.name=sName;
   this.sayName=function(){
     alert(this.name);
   }
}

var obj1=new classC("red","jack");

obj1.sayColor();
obj1.sayName();



2.用apply方法实现继承,
  这种方法的本质和call方法是一致的,不同的是APPLY的第个参数是数组(包含了要传递的所有参数)
function classD(sColor,sName){
  classA.apply(this,new Array(sColor));
  this.name=sName;
  this.sayName=function(){
    alert(this.name);
  }
}

var obj2=new classD("blue","sherry");
obj2.sayColor();
obj2.sayName();


3. 原型方法, 请参考我的前篇文章
   JAVASCRIPT定义对象的四种方式

4. 构造函数,原型混合方法
function classA(sName){
  this.name=sName;
}

classA.prototype.sayName=function(){
  alert(this.name);
}

function classB(sName,sHeight){
   classA.call(this,sName)
   this.height=sHeight;
}

classB.prototype=new classA();

classB.prototype.sayHeight=function(){
   alert(this.height);
}

var obj3=new classA("jack");

obj3.sayName();

var obj4=new classB("shrry",27);

obj4.sayName();

obj4.sayHeight();



5. 使用类似于Prototype extend 方法
  
    function extend(childclass,superclass){
      var func=function(){};
      func.prototype=superclass.prototype;
      childclass.prototype=new func();
      childclass.prototype.constructor=childclass;
    }
   
分享到:
评论

相关推荐

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

    JavaScript中的几种继承方法示例  1.原型链继承  原理: 子类原型指向父类实例对象实现原型共享,即Son.prototype = new Father()。 这里先简单介绍下原型 js中每个对象都有一个__proto__属性,这个属性指向的...

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

    这种说法原因一般都是觉得javascript作为一门弱类型语言与类似java或c#之类的强型语言的继承方式有很大的区别,因而默认它就是非主流的面向对象方式,甚至竟有很多书将其描述为’非完全面向对象’语言。其实个人觉得...

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

    本文实例分析了Javascript编程中几种继承方式比较。分享给大家供大家参考,具体如下: 开篇 从’严格’意义上说,javascript并不是一门真正的面向对象语言。这种说法原因一般都是觉得javascript作为一门弱类型语言与...

    CKevens#-#05-02.面向对象:类的定义和继承的几种方式1

    前言类与实例:类的声明生成实例类与继承:如何实现继承:继承的本质就是原型链继承的几种方式类的定义、实例化类的定义/类的声明方式一:用构造函数模拟类(传统写法)/

    javascript面向对象之Javascript 继承

    在JavaScript中实现继承可以有多种方法,下面说两种常见的。 一,call 继承,先看代码: 先定义一个“人”类 代码如下: //人类 Person=function(){ this.name=”草泥马”; this.eat=function(){ alert(“我要...

    haoyi2015#Web-1#05-02.面向对象:类的定义和继承的几种方式1

    前言类与实例:类的声明生成实例类与继承:如何实现继承:继承的本质就是原型链继承的几种方式类的定义、实例化类的定义/类的声明方式一:用构造函数模拟类(传统写法)/

    JavaScript面向对象编程指南(第2版)

    依次介绍了JavaScript的发展历史、基础性话题(变量、数据类型、数组、循环以及条件表达式)、函数、对象、原型、继承的实现、BOM和DOM等。附录部分包括了学习JavaScript编程常用的参考资源。尤其值得一提的是,本书...

    javascript 中的继承实例详解

    javascript 中的继承实例...下面介绍几种js的继承: 原型链继承 原型链继承实现的本质是重写原型对象,代之以一个新类型的实例。代码如下: function SuperType() { this.property = true; } SuperType.prototype.

    JavaScript定义类的几种方式总结

    提起面向对象我们就能想到类,对象,封装,继承,多态。在《javaScript高级程序设计》(人民邮电出版社,曹力、张欣译。英文名字是:Professional JavaScript for Web Developers)这本书中描述的还算比较详细。我们...

    JavaScript中的几种继承方法示例

    原理: 子类原型指向父类实例对象实现原型共享,即Son.prototype = new Father()。 这里先简单介绍下原型 js中每个对象都有一个__proto__属性,这个属性指向的就是该对象的原型。js中每个函数都有一个prototype属性,...

    Javascript继承机制详解

    Javascript并不像Java那样对继承机制有严格明确的定义,它的实现方式正如它的变量的使用方式那样也是十分宽松的,你可以设计自己的方法“模仿”继承机制的实现。有以下几种方法: 1、对象冒充 [removed] function...

    JavaScript继承模式粗探

    Javascript原型继承是一个被说烂掉了的话题,但是自己对于这个问题一直没有彻底理解,今天花了点时间又看了一遍《Javascript模式》中关于原型实现继承的几种方法,下面来谈谈JS中比较简单的继承方法,如果大家有不同...

    javascript 面向对象封装与继承

     js中封装有很多种实现方式,这里列出常用的几种。 1.1 原始模式生成对象  直接将我们的成员写入对象中,用函数返回。 缺点:很难看出是一个模式出来的实例。 代码: 代码如下:  function Stu(name, score) {  ...

    JavaScript 继承使用分析

    基类:提供给其他类可以继承的类 派生类:由基类继承而来的类 javascript对象继承通常有下面的5种方式: 1.对象冒充 2.call()方式 3.apply()方式 4.原型链 5.混合方式 A.对象冒充 所谓对象冒充,就是新的类冒充旧的类...

    javascript的几种继承方法介绍

    1.原型链继承:构造函数、原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。确认原型和实例之间的关系用instanceof。 原型链继承...

    JavaScript继承学习笔记【新手必看】

    JavaScript作为一个面向对象语言(JS是基于对象的),可以实现继承是必不可少的,但是由于本身并没有类的概念,所以不会像真正的面向对象编程语言通过类实现继承,但可以通过其他方法实现继承。实现继承的方法很多,...

    JavaScript中数组继承的简单示例

     在 JavaScript 中,数组也属于 Object 的一种,它也可以继承。任何两个对象本身就可以有继承关系,数组也不例外。于是我们让一个树的任何一个节点都是数组,它只维护自己下标最大的那个元素的值。其它元素的值通过...

    JS 类的创建继承 与 new原理实现

    JS实现继承的几种方式 JavaScript深入之创建对象的多种方式以及优缺点 js new一个对象的过程,实现一个简单的new方法 (一)类的创建 1. 工厂模式 function createPerson(name){ //原料: var obj=new Object(); /...

    JavaScript定义类或函数的几种方式小结

    工厂方式 javaScript中创建自己的类和对象,我们应该是必须掌握的,我们都知道javaScript中对象的属性可以在对象创建后动态定义,比如下面的代码: 代码如下: [removed] //定义 var oCar = new Object();

    javascript 继承实现方法

    下面我给出几种常用的方法: 1 .对象冒充 原理: 构造函数使用this关键字给所有属性和方法赋值, 因为构造函数只是一个函数,所以可以使ClassA的构造函数成为classB的方法,然后调用它.这样classB就会收到classA的构造...

Global site tag (gtag.js) - Google Analytics