`

javascript继承之原型

阅读更多

针对上一节:javascript继承之数据绑定的假设,做如下实验:

prototype模式

先运行一段代码:

 

function Animal(){
    this.species = "动物";
  }

function Cat(name,color){
    this.name = name;
    this.color = color;
  }

Cat.prototype = new Animal();

alert("the first cat's prototype is : "+Cat.prototype.constructor);
//the first cat's prototype is : function Animal(){
//    this.species = "动物";
//  }

Cat.prototype.constructor = Cat;

alert("the second cat's prototype is : "+Cat.prototype.constructor);
//the second cat's prototype is : function Cat(name,color){
//    this.name = name;
//    this.color = color;
//  }

 

Cat.prototype = new Animal();我们将Cat的prototype对象指向一个Animal的实例。

Cat.prototype.constructor = Cat; 它相当于完全删除了prototype 对象原先的值,然后赋予一个新值。

 

但是,这是什么意思呢? 

原来,任何一个prototype对象都有一个constructor属性,指向它的构造函数。

 

如果没有"Cat.prototype = new Animal();"这一行则Cat.prototype.constructor是指向Cat的;加了这一行以后,Cat.prototype.constructor指向Animal。

 

更重要的是,每一个实例也有一个constructor属性,默认调用prototype对象的constructor属性。

 

分享到:
评论

相关推荐

    理解Javascript原型继承原理

    ### 理解Javascript原型继承原理 #### 一、引言 在JavaScript中,原型继承是一种非常核心且独特的机制,它使得对象能够继承其他对象的属性和方法。本文旨在深入探讨这一机制,并通过具体的示例代码帮助读者更好地...

    浅析JavaScript实现基于原型对象的“继承”.pdf

    原型对象是JavaScript继承机制的核心。 寄生组合模式 基于原型的继承有一个缺陷,那就是它不能够很好地支持多继承。如果我们想要实现多继承,我们可以使用寄生组合模式。寄生组合模式是通过组合原型对象和构造函数...

    javascript原型继承代码案例

    javascript原型继承,prototype的使用,可以像java一样继承

    JavaScript中的原型和继承详解(图文)_.docx

    这使得 JavaScript 中的对象可以继承原型对象的方法和属性,从而实现代码的重用和简洁。 四、原型链 在 JavaScript 中,原型对象可以形成一个链式结构,即一个对象的原型对象可以有自己的原型对象,以此类推。这...

    JavaScript继承

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

    浅析Javascript原型继承 推荐第1/2页

    在深入探讨JavaScript的原型继承之前,首先要明确的是JavaScript中并没有类似其他编程语言中的类继承的概念。虽然有传言JavaScript 2.0将加入类继承机制,但考虑到要让所有浏览器支持新特性可能需要很长时间,因此...

    深入探索JavaScript的原型继承:机制、实现与最佳实践

    在JavaScript的世界里,原型继承不仅是实现对象功能共享的核心机制,也是其面向对象编程风格的基础。本文将深入探讨JavaScript原型继承的工作原理、实现方式以及在现代Web开发中的应用。 JavaScript的原型继承是一种...

    JavaScript继承机制研究.pdf

    在本文中,我们将深入探讨JavaScript继承机制的实现方式,并对基于原型的继承、构造函数方式继承、组合继承、寄生式继承等继承机制进行了总结归纳和分析。 基于原型的继承 JavaScript是一门基于原型的语言,它不像...

    探索JavaScript的原型链:原型继承的奥秘

    它的特性之一是基于原型的继承机制,这与其他采用类继承的语言(如Java或C#)形成了鲜明对比。在JavaScript中,原型继承是实现对象间属性和方法共享的关键。 **JavaScript的主要特点:** 1. **解释型语言**:...

    浅析javascript原型继承机制

    ### 浅析JavaScript原型继承机制 #### 一、引言 JavaScript作为一种动态语言,其对象模型与传统的面向对象编程语言有所不同。在JavaScript中,并没有直接提供类的概念,而是通过原型来实现继承。本文将深入探讨...

    再谈javascript原型继承

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

    JavaScript中的原型继承基础学习教程_.docx

    在JavaScript中,原型继承是一种核心机制,用于实现面向对象编程中的继承特性。与其他许多编程语言不同,JavaScript不使用类来实现继承,而是基于原型(prototype)的概念。本文将深入探讨JavaScript中的原型继承...

    javascript继承之工具函数二

    在JavaScript中,常见的继承模式有原型链继承、构造函数继承、组合继承、寄生继承、原型式继承、委托继承等。这里提到的"工具函数二"可能是介绍了一种或多种继承模式的实现方式。下面我们将详细讨论这些概念: 1. *...

    javascript原型继承工作原理和实例详解_.docx

    ### JavaScript原型继承工作原理及实例详解 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,在Web开发中扮演着重要角色。其独特的面向对象机制是通过原型继承来实现的,这种机制使得JavaScript能够灵活地...

    Javascript原型继承

    JavaScript原型继承是面向对象编程在JavaScript中的实现方式之一,它基于原型(Prototype)和对象的特性,使得一个对象可以继承另一个对象的属性和方法。在JavaScript中,每个对象都有一个特殊的内部属性`[...

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

    原型链是JavaScript实现继承的基础。每个函数都有一个`prototype`属性,这个属性是一个对象,它的`__proto__`属性指向创建该函数的构造函数的原型。当试图访问一个对象的属性时,JavaScript会首先在当前对象中查找,...

    JavaScript继承的特性与实践应用深入详解

    这里我们将深入探讨JavaScript继承的特性以及实践应用。 首先,JavaScript的继承基于原型链。每个对象都有一个`__proto__`属性,指向创建它的构造函数的原型对象。当试图访问对象的一个属性时,JavaScript会沿着...

Global site tag (gtag.js) - Google Analytics