`
隐形的翅膀
  • 浏览: 498262 次
  • 性别: 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中实现继承的几种常见方式。 1. 原型链继承 JavaScript的原型(prototype)机制是实现继承的基础。每个函数都有一个prototype属性,这个属性指向一个对象,这个对象的属性和方法可以被...

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

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

    JavaScript定义类的几种方式总结

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

    JavaScript学习之二 — JavaScript创建对象的8种方式

    本文将深入探讨JavaScript创建对象的8种常见方式,帮助你更好地理解和掌握这门动态类型的编程语言。 1. **字面量(Literal)方式** 这是最简单直接的创建对象的方式,通过大括号{}来定义一个对象,然后在内部用...

    JAVASCRIPT中定义对象的几种方式.pdf

    本文将深入探讨在JavaScript中定义对象的几种常见方式,包括工厂模式、构造函数、原型以及继承。 1. 工厂方式定义对象: 工厂模式是一种创建对象的抽象方式,通过函数来创建具有相似特性的对象。这种方式的主要...

    详述JavaScript实现继承的几种方式(推荐)

    在JavaScript中,实现继承的几种方式可以带来不同的好处和权衡,主要包括原型链继承、构造函数继承、组合继承以及原型式继承等。 首先,原型链继承是基于原型对象的属性共享机制。每个对象都有一个指向其原型对象的...

    JavaScript是如何实现继承的(六种方式)_.docx

    在JavaScript中,由于其动态性质,继承的实现方式与传统的面向对象语言有所不同。本文将详细介绍JavaScript中的六种继承方式,包括它们的工作原理以及实际应用示例。 #### 二、原型链继承 **1. 原理概述** 原型链...

    javascript对象参考手册

    首先,手册的前几章会介绍JavaScript对象的基础知识,包括对象的创建、属性和方法的定义,以及对象与数据类型的关联。JavaScript中的对象是基于原型的,这意味着它们可以通过原型链共享属性和方法。此外,还会讲解...

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

    在JavaScript中,对象可以通过原型链实现继承,这是JavaScript中实现面向对象编程的重要方式。本文将详细介绍JavaScript中的三种主要继承方法:原型链继承、构造函数继承以及组合继承。 1. **原型链继承**: - ...

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

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

    JAVASCRIPT 面向对象编程精要

    JavaScript提供了几种面向对象的机制,包括继承和封装。 ##### 4.1 封装 JavaScript中的封装主要通过闭包实现。例如,可以创建一个返回私有属性和方法的对象的函数: ```javascript function createPerson(name, ...

    JavaScript面向对象的支持

    JavaScript是一种广泛应用于Web开发的脚本语言,它虽然支持面向对象编程,但其面向对象的实现方式与其他传统面向对象语言(如Java或C++)有所不同。JavaScript中的面向对象特性主要体现在以下几个方面: 1. **基于...

    在JavaScript中实现类的方式探讨

    在JavaScript中实现类的方式主要有几种,包括对象字面量(Object Literal)、构造函数(Constructor)、原型链(Prototype Chain)以及ES6引入的类语法。每种方式都有其适用的场景和特点,理解它们有助于我们更好地...

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

    **原理**: 在JavaScript中,原型链继承是一种实现继承的方式,它通过让子类的原型对象指向父类的一个实例来实现属性和方法的共享。 - **核心概念**: 每个函数都具有一个`prototype`属性,该属性默认是一个空的对象...

    浅谈Javascript实现继承的方法

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

    javascript继承之工具函数二

    这里提到的"工具函数二"可能是介绍了一种或多种继承模式的实现方式。下面我们将详细讨论这些概念: 1. **原型链继承**:这是JavaScript默认的继承方式,通过`__proto__`或`Object.create()`来实现。子对象的原型被...

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

    本文将详细介绍JavaScript中的类继承概念,包括基本原理、实现方式以及一些高级用法。 #### 二、继承概述 在JavaScript中,继承主要通过原型链来实现。每个对象都有一个`prototype`属性,指向它的原型对象。当尝试...

    Javascript面向对象特性实现(封装、继承、接口).doc

    JavaScript是一种动态类型的脚本语言,虽然它不像Java或C#那样是典型的面向对象语言,但JavaScript仍然支持面向对象编程的概念,包括封装、继承和接口。下面我们将深入探讨这些概念。 **封装**是面向对象编程的基本...

    JavaScript面向对象编程指南 第2版 高清 带索引书签目录_样章.pdf

    这个概念对于理解JavaScript对象的行为至关重要,因为不同于其他语言使用类来创建对象,JavaScript通过原型链继承来实现对象属性和方法的继承。 此外,书籍中提到的“12种继承方式”,指的是在JavaScript中实现继承...

Global site tag (gtag.js) - Google Analytics