`
zzhdi
  • 浏览: 77230 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

理解 JavaScript 对象原型

阅读更多

 

function Rectangle(w,h)

{

  this.width=w;

  this.height=h;

}

 

当一个函数被定义的时候,JavaScript会创建一个特殊的对象(其类型是function),

对象的名称就是函数的名称,接着创建一个对象为这个函数对象的prototype属性赋值。

以上面的Rectangle 函数为例:

JavaScript创建一个函数对象Rectangle,并且

Rectangle.prototype=new Object();

Rectangle.prototype.constructor=Rectangle

var r=new Rectangle(5,6);

new 会创建一个新的空对象,然后把Rectangle函数赋值给这个对象的constructor属性,

接着调用这个构造函数,最后设置这个对象的原型。一个对象的原型就是它的constructor

的prototype属性的值。

对象创建后,其原型对象确定,如果重新设置其构造函数的prototype,其不受影响。

完整的代码如下:

function Rectangle(w,h)

{

  this.width=w;

  this.height=h;

}

var r=new Rectangle(10,15);

Rectangle.prototype.area=function(){return this.width * this.height;};

alert(r.area());//150

 

Rectangle.prototype=new Object();

Rectangle.prototype.area=function(){return this.width+''+this.height;};

alert(r.area());//150

 

var rr=new Rectangle(10,15);

alert(rr.area());//1015

 

理解了这些,再去理解模拟类,类属性、类方法、实例属性、实例方法、类继承就容易了


 

分享到:
评论

相关推荐

    深入理解javascript原型和闭包

    深入理解javascript原型和闭包(01)——一切都是对象 深入理解javascript原型和闭包(02)——函数和对象的关系

    深入理解javascript原型和闭包.pdf

    理解这两个概念,不仅能让我们更深层次地理解JavaScript,而且有助于我们了解编程语言的设计思路,拓宽我们的视野。 首先,关于“一切都是对象”的说法,这并不意味着JavaScript中所有内容都是对象。在JavaScript中...

    深入理解JavaScript系列

    深入理解JavaScript系列(5):强大的原型和原型链 深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP 深入理解JavaScript系列(7):S.O.L.I.D五大原则之开闭原则OCP 深入理解JavaScript系列(8):...

    理解Javascript原型继承原理

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

    第15章 javascript面向对象与原型

    在深入讲解JavaScript面向对象与原型的知识点之前,首先需要了解JavaScript的基础知识。在JavaScript中,面向对象编程(OOP)的...正确理解并运用这些概念,可以让开发者更有效地利用JavaScript进行面向对象的编程。

    JavaScript 面向对象与原型

    在JavaScript中,面向对象编程基于原型,这使得它与其他面向对象语言(如Java或C++)有所不同。以下是对JavaScript面向对象和原型机制的详细解释: 1. 面向对象的基本概念: - 类:在许多面向对象语言中,类是创建...

    JavaScript原型链

    首先,每个JavaScript对象都有一个内部属性`[[Prototype]]`,通常我们通过`__proto__`或`Object.getPrototypeOf`来访问。这个属性引用了创建当前对象的构造函数的原型对象。原型对象本身也是一个对象,因此它也有...

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

    JavaScript的基于原型的继承风格使用起来非常灵活、高效,但对于初学者,要准确理解原型对象及其继承机制还是比较困难。本文将对JavaScript原型继承的方式进行介绍,并结合实例进行分析。 基于类的继承 面向对象...

    深入理解javascript原型和闭包1

    JavaScript是一种动态类型的...通过这些深入的讲解,你应该能更好地理解JavaScript中对象、原型、函数和闭包的工作原理,为你的JavaScript开发打下坚实的基础。在实际编程中,灵活运用这些知识可以解决许多复杂的问题。

    javascript对象参考手册

    "JavaScript对象参考手册"涵盖了这一主题的广泛内容,旨在为开发者提供全面、深入的理解和实用指南。手册分为20个章节,不仅涉及基础概念,还深入探讨了如ActiveX技术这样的高级特性以及数据库访问等复杂话题。 ...

    深入理解JavaScript系列(.chm)

    深入理解JavaScript系列(5):强大的原型和原型链 深入理解JavaScript系列(6):S O L I D五大原则之单一职责SRP 深入理解JavaScript系列(7):S O L I D五大原则之开闭原则OCP 深入理解JavaScript系列(8):...

    Javascript面向对象编程.

    JavaScript是一种广泛应用于Web开发的脚本语言,尤其在前端领域占据着核心地位。面向对象编程(Object-Oriented Programming,OOP)是...学习这些材料将有助于深入理解JavaScript的面向对象编程,提升你的编程技能。

    我所理解的从原型到原型链.pdf

    在JavaScript中,理解原型(Prototype)与原型链(Prototype Chain)是至关重要的。这两个概念是语言的核心部分,对于深入理解对象的属性查找机制、继承等方面有着不可替代的作用。 #### 原型(Prototype) 在...

    图文详解JavaScript的原型对象及原型链

    JavaScript的原型对象和原型链是理解JavaScript继承机制的关键概念。首先,我们来区分两个关键的属性:`prototype`和`__proto__`。 1. `prototype`:主要用于构造函数,它是构造函数的一个属性,用于定义实例对象将...

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

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

    ember-disable-prototype-extensions-源码.rar

    Ember.js是一个流行的JavaScript框架,用于构建可维护的、高性能的Web应用。"ember-disable-prototype-...通过分析源码,我们可以更深入地理解JavaScript对象原型扩展的优缺点,以及在实际开发中如何做出明智的选择。

    学习javascript面向对象 理解javascript原型和原型链

    在深入理解JavaScript面向对象编程时,了解其原型和原型链的概念至关重要。本文将详细解释这些概念以及它们如何工作,帮助初学者构建扎实的基础。 首先,原型链是JavaScript中实现继承的一种机制。在JavaScript中,...

    深入浅出JavaScript对象模型

    ### 深入浅出JavaScript对象模型 #### JavaScript对象的本质 根据ECMA262规范,...理解JavaScript中的对象和原型链不仅有助于编写更好的代码,还能够帮助我们更深入地了解现代Web开发中的许多高级概念和技术。

Global site tag (gtag.js) - Google Analytics