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原型和闭包(01)——一切都是对象 深入理解javascript原型和闭包(02)——函数和对象的关系
深入理解JavaScript系列(5):强大的原型和原型链 深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP 深入理解JavaScript系列(7):S.O.L.I.D五大原则之开闭原则OCP 深入理解JavaScript系列(8):...
而Object的原型对象用Object.__proto__ = null表示原型链的最顶端,如此变形成了javascript的原型链继承,同时也解释了为什么所有的javascript对象都具有Object的基本方法。原型对象的用途是为每个实例对象存储共享...
面向对象概念(对象封装,各种继承,闭包原理,this作用域等)介绍清晰易懂
深入理解JavaScript系列(5):强大的原型和原型链 深入理解JavaScript系列(6):S O L I D五大原则之单一职责SRP 深入理解JavaScript系列(7):S O L I D五大原则之开闭原则OCP 深入理解JavaScript系列(8):...
在咱们的第一节(深入理解javascript原型和闭包(1)——一切都是对象)中说道,函数也是一种对象。他也是属性的集合,你也可以对函数进行自定义属性。不用等咱
原型是理解继承概念的关键, 我们将会教你如何建立原型, 如何检测一个对象是否是另外一个对象的原型, 及其 JavaScript 的模型与Java 面向对象编程之间的区别。我们同样会向你展示如何检测对象所包含的各种属性的方法...
主要介绍了javascript原型和原型链,学习javascript面向对象,感兴趣的小伙伴们可以参考一下
能学到什么:理解原型链对于 JavaScript 开发者来说非常重要,因为它影响了对象的属性访问、继承和代码复用等方面。通过掌握原型链的概念和工作原理,开发者可以更好地利用 JavaScript 的面向对象特性。 这是一个可...
在上一篇文章中,介绍了原型的概念,了解到在javascript中构造函数、原型对象、实例三个好基友之间的关系:每一个构造函数都有一个“守护神”——原型对象,原型对象心里面也存着一个构造函数的“位置”,两情相悦,...
对象,是javascript中非常重要的一个梗,是否能透彻的理解它直接关系到你对整个javascript体系的基础理解,说白了,javascript就是一群对象在搅。。(哔!)。
基于对象很好理解,毕竟在 JavaScript 中⼀切都是对象,我们随时可以使⽤点号操作符来调 某个对象的⽅法。但是⼗多年前,我们编写 JavaScript 程序时,都是像 C 语⾔那样使⽤函数来组织我们的程序的,只有在论坛的...
当今 JavaScript 大行其道,各种应用...要掌握好 JavaScript,首先一点是必须摒弃一些其他高级语言如 Java、C# 等类式面向对象思维的干扰,全面地从函数式语言的角度理解 JavaScript 原型式面向对象的特点。把握好这一
每一个JavaScript对象都和另一个对象相关联,相关联的这个对象就是我们所说的“原型”。每一个对象都会从原型继承属性和方法。有一个特殊的对象没有原型,就是Object。在之后的图示中会进行说明。 举个栗子,我们...
JavaScript 的原型对象总是让人纠结。即使是经验丰富的JavaScript专家甚至其作者,经常对这一概念给出很有限的解释。我相信问题来自于我们对原型最早的认识。...(只有一个例外,默认的对象原型在每条原型链的顶端,其
本文实例讲述了javascript 原型与原型链的理解及应用。分享给大家供大家参考,具体如下: javascript中一切皆对象,但是由于没有Class类的概念,所以就无法很好的表达对象与对象之间的关系了。 比如对象A与对象B之间...
JavaScript的原型是一个很让人头疼的事情,一来prototype容易与__proto__混淆,二来它们之间的各种指向实在有些复杂,其实市面上已经有非常多的文章在尝试说清楚,有一张所谓很经典的图,上面画了各种线条,一会连接...
该文档是根据博客园汤姆大叔的深入理解JavaScript系列(http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html)博文整理而成,主要内容包括: 1.编写高质量JavaScript代码的基本要点 2.揭秘命名函数...