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,而且有助于我们了解编程语言的设计思路,拓宽我们的视野。 首先,关于“一切都是对象”的说法,这并不意味着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面向对象与原型的知识点之前,首先需要了解JavaScript的基础知识。在JavaScript中,面向对象编程(OOP)的...正确理解并运用这些概念,可以让开发者更有效地利用JavaScript进行面向对象的编程。
在JavaScript中,面向对象编程基于原型,这使得它与其他面向对象语言(如Java或C++)有所不同。以下是对JavaScript面向对象和原型机制的详细解释: 1. 面向对象的基本概念: - 类:在许多面向对象语言中,类是创建...
首先,每个JavaScript对象都有一个内部属性`[[Prototype]]`,通常我们通过`__proto__`或`Object.getPrototypeOf`来访问。这个属性引用了创建当前对象的构造函数的原型对象。原型对象本身也是一个对象,因此它也有...
JavaScript的基于原型的继承风格使用起来非常灵活、高效,但对于初学者,要准确理解原型对象及其继承机制还是比较困难。本文将对JavaScript原型继承的方式进行介绍,并结合实例进行分析。 基于类的继承 面向对象...
JavaScript是一种动态类型的...通过这些深入的讲解,你应该能更好地理解JavaScript中对象、原型、函数和闭包的工作原理,为你的JavaScript开发打下坚实的基础。在实际编程中,灵活运用这些知识可以解决许多复杂的问题。
"JavaScript对象参考手册"涵盖了这一主题的广泛内容,旨在为开发者提供全面、深入的理解和实用指南。手册分为20个章节,不仅涉及基础概念,还深入探讨了如ActiveX技术这样的高级特性以及数据库访问等复杂话题。 ...
深入理解JavaScript系列(5):强大的原型和原型链 深入理解JavaScript系列(6):S O L I D五大原则之单一职责SRP 深入理解JavaScript系列(7):S O L I D五大原则之开闭原则OCP 深入理解JavaScript系列(8):...
JavaScript是一种广泛应用于Web开发的脚本语言,尤其在前端领域占据着核心地位。面向对象编程(Object-Oriented Programming,OOP)是...学习这些材料将有助于深入理解JavaScript的面向对象编程,提升你的编程技能。
在JavaScript中,理解原型(Prototype)与原型链(Prototype Chain)是至关重要的。这两个概念是语言的核心部分,对于深入理解对象的属性查找机制、继承等方面有着不可替代的作用。 #### 原型(Prototype) 在...
JavaScript的原型对象和原型链是理解JavaScript继承机制的关键概念。首先,我们来区分两个关键的属性:`prototype`和`__proto__`。 1. `prototype`:主要用于构造函数,它是构造函数的一个属性,用于定义实例对象将...
在JavaScript的世界里,原型继承不仅是实现对象功能共享的核心机制,也是其面向对象编程风格的基础。本文将深入探讨JavaScript原型继承的工作原理、实现方式以及在现代Web开发中的应用。 JavaScript的原型继承是一种...
Ember.js是一个流行的JavaScript框架,用于构建可维护的、高性能的Web应用。"ember-disable-prototype-...通过分析源码,我们可以更深入地理解JavaScript对象原型扩展的优缺点,以及在实际开发中如何做出明智的选择。
在深入理解JavaScript面向对象编程时,了解其原型和原型链的概念至关重要。本文将详细解释这些概念以及它们如何工作,帮助初学者构建扎实的基础。 首先,原型链是JavaScript中实现继承的一种机制。在JavaScript中,...
### 深入浅出JavaScript对象模型 #### JavaScript对象的本质 根据ECMA262规范,...理解JavaScript中的对象和原型链不仅有助于编写更好的代码,还能够帮助我们更深入地了解现代Web开发中的许多高级概念和技术。