`
zzhdi
  • 浏览: 75535 次
  • 性别: 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系列

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

    js 原型对象和原型链理解

    而Object的原型对象用Object.__proto__ = null表示原型链的最顶端,如此变形成了javascript的原型链继承,同时也解释了为什么所有的javascript对象都具有Object的基本方法。原型对象的用途是为每个实例对象存储共享...

    JavaScript核心(对象、原型、继承、上下文、闭包、this).pdf

    面向对象概念(对象封装,各种继承,闭包原理,this作用域等)介绍清晰易懂

    深入理解JavaScript系列(.chm)

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

    深入理解javascript原型和闭包1

    在咱们的第一节(深入理解javascript原型和闭包(1)——一切都是对象)中说道,函数也是一种对象。他也是属性的集合,你也可以对函数进行自定义属性。不用等咱

    JavaScript 面向对象编程详细讲解文档

    原型是理解继承概念的关键, 我们将会教你如何建立原型, 如何检测一个对象是否是另外一个对象的原型, 及其 JavaScript 的模型与Java 面向对象编程之间的区别。我们同样会向你展示如何检测对象所包含的各种属性的方法...

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

    主要介绍了javascript原型和原型链,学习javascript面向对象,感兴趣的小伙伴们可以参考一下

    JavaScript你一定要搞懂的原型链

    能学到什么:理解原型链对于 JavaScript 开发者来说非常重要,因为它影响了对象的属性访问、继承和代码复用等方面。通过掌握原型链的概念和工作原理,开发者可以更好地利用 JavaScript 的面向对象特性。 这是一个可...

    深入理解javascript原型链和继承

    在上一篇文章中,介绍了原型的概念,了解到在javascript中构造函数、原型对象、实例三个好基友之间的关系:每一个构造函数都有一个“守护神”——原型对象,原型对象心里面也存着一个构造函数的“位置”,两情相悦,...

    深入理解javascript构造函数和原型对象

    对象,是javascript中非常重要的一个梗,是否能透彻的理解它直接关系到你对整个javascript体系的基础理解,说白了,javascript就是一群对象在搅。。(哔!)。

    深入理解JavaScript

    基于对象很好理解,毕竟在 JavaScript 中⼀切都是对象,我们随时可以使⽤点号操作符来调 某个对象的⽅法。但是⼗多年前,我们编写 JavaScript 程序时,都是像 C 语⾔那样使⽤函数来组织我们的程序的,只有在论坛的...

    全面理解面向对象的 JavaScript(来自ibm)

    当今 JavaScript 大行其道,各种应用...要掌握好 JavaScript,首先一点是必须摒弃一些其他高级语言如 Java、C# 等类式面向对象思维的干扰,全面地从函数式语言的角度理解 JavaScript 原型式面向对象的特点。把握好这一

    理解JavaScript原型链

    每一个JavaScript对象都和另一个对象相关联,相关联的这个对象就是我们所说的“原型”。每一个对象都会从原型继承属性和方法。有一个特殊的对象没有原型,就是Object。在之后的图示中会进行说明。 举个栗子,我们...

    深入理解JavaScript编程中的原型概念

    JavaScript 的原型对象总是让人纠结。即使是经验丰富的JavaScript专家甚至其作者,经常对这一概念给出很有限的解释。我相信问题来自于我们对原型最早的认识。...(只有一个例外,默认的对象原型在每条原型链的顶端,其

    javascript 原型与原型链的理解及应用实例分析

    本文实例讲述了javascript 原型与原型链的理解及应用。分享给大家供大家参考,具体如下: javascript中一切皆对象,但是由于没有Class类的概念,所以就无法很好的表达对象与对象之间的关系了。 比如对象A与对象B之间...

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

    JavaScript的原型是一个很让人头疼的事情,一来prototype容易与__proto__混淆,二来它们之间的各种指向实在有些复杂,其实市面上已经有非常多的文章在尝试说清楚,有一张所谓很经典的图,上面画了各种线条,一会连接...

    深入理解JavaScript系列.chm

    该文档是根据博客园汤姆大叔的深入理解JavaScript系列(http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html)博文整理而成,主要内容包括: 1.编写高质量JavaScript代码的基本要点 2.揭秘命名函数...

Global site tag (gtag.js) - Google Analytics