原型式继承的例子:
<script>
//为Person 对象创建一个构造函数
function Person(name){
this.name=name;
}
//为Person对象添加一个新方法
Person.prototype.getName=function(){
return this.name;
};
//创建一个新的User对象的构造函数
function User(name,password){
//注意,这里并没有支持方便的重载/继承,也就是说,不能调用父类的构造函数
this.name=name;
this.password=password;
}
//User对象继承所有Person对象的方法
User.prototype=new Person();
User.prototype.getPassword=function(){
return this.password;
};
var u=new User("cai","123");
alert(u.getName());//outputs "cai"
<script>
在上面这个例子中最重要的一行是User.prototype=new Person();让我们来仔细分析一下这究竟是什么意思:User是对User对象构造函数的引用。new Person()使用Person构造函数创建一个新的Person对象,然后把User构造函数的原型置为这个操作的结果。也就是说,每当你new User()时,得到的新User对象都会带有Person对象的所有方法,如同通过操作new Person()得到的一样
分享到:
相关推荐
JavaScript本身是一种基于原型的动态类型语言,但在ES6引入了`class`语法糖,使得类的概念更加清晰,但其实质仍然是基于原型的继承。下面我们将深入探讨如何在JavaScript中实现类式继承。 首先,我们来看`Class.js`...
2. **避免使用类层次结构**:如果一个类层次结构过于复杂,可以使用原型模式简化结构,将复制作为替代继承的方法。 3. **需要复制现有对象但又不希望知道其具体类**:原型模式允许客户端独立于具体类型进行操作,...
JavaScript中的原型式继承是一种实现对象继承的方式,它利用了JavaScript对象原型(prototype)的特性来实现对象间的属性和方法共享。这种方法由道格拉斯·克罗克福德在2006年的文章中提出,旨在避免自定义类型的...
现在让我们来分析一个具体的原型继承例子: ```javascript function Gizmo(id) { this.id = id; } Gizmo.prototype.toString = function() { return "gizmo" + this.id; }; function Hoozit(id) { this.id = id...
### 探索JavaScript的原型链:原型继承的奥秘 #### 一、JavaScript与原型继承的基础 JavaScript(简称JS)是一种广泛使用的高级编程语言,在Web开发中占据着核心地位。它的特性之一是基于原型的继承机制,这与其他...
在这个例子中,`Person.prototype`位于`person1`的原型链中,因此任何通过`Person.prototype`定义的属性或方法都可被`person1`访问。 #### 四、继承机制 在JavaScript中,继承主要通过原型链来实现。当一个对象...
### JavaScript原型继承工作原理及实例详解 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,在Web开发中扮演着重要角色。其独特的面向对象机制是通过原型继承来实现的,这种机制使得JavaScript能够灵活地...
这里我们将深入探讨几种主要的继承方式:原型式继承、寄生式继承和寄生组合式继承。 ### 原型式继承 在JavaScript中,对象有一个名为`__proto__`的内部属性,指向创建该对象的构造函数的原型。原型式继承利用了这...
### 浅析JavaScript原型继承机制 #### 一、引言 JavaScript作为一种动态语言,其对象模型与传统的面向对象编程语言有所不同。在JavaScript中,并没有直接提供类的概念,而是通过原型来实现继承。本文将深入探讨...
JavaScript中的原型继承是一种实现对象间属性和方法共享的重要机制,它是基于原型链的概念来工作的。在JavaScript中,每个对象都有一个内部属性`[[Prototype]]`,通常通过`__proto__`(非标准)或`Object....
### JS原型继承的两种方法对比介绍 #### 一、引言 在JavaScript中,对象间的继承机制主要依赖于原型链。原型链的概念使得JavaScript能够实现动态面向对象编程,并且提供了非常灵活的对象创建与继承的方式。在实际...
下面是一个具体的寄生式组合继承的例子: ```javascript function SuperType(name) { this.name = name; this.colors = ["red", "yellow", "blue"]; } SuperType.prototype.sayName = function () { console....
虽然JavaScript的原型继承机制最初可能看起来复杂,但它提供了强大的灵活性,使得对象能够共享属性和方法,从而实现类似于类继承的功能。这种模式在实践中已被广泛应用,尤其是在创建可复用的代码和模块时。然而,...
在JavaScript中,组合继承是一种常见的继承模式,它结合了原型链继承和构造函数继承的优点,以实现更...因此,在设计复杂的应用时,开发者可能需要考虑其他继承策略,如寄生式继承、寄生组合式继承或ES6的类继承等。
除了原型链,JavaScript还提供了其他继承模式,如构造函数继承、组合继承、原型式继承等。ES6引入的类(Class)语法实际上是基于原型链的语法糖,它简化了继承的写法,但底层机制仍然是原型链。 例如,使用ES6的类...
在JavaScript中,原型链继承是实现面向对象编程的一种方式,它是基于JavaScript的原型特性来实现的。本示例"js代码-原型链继承demo"旨在帮助理解如何利用原型链进行对象间的属性和方法共享。 首先,我们需要理解...
通过原型,JavaScript实现了一种称为“原型继承”的机制。 2. 原型对象: 每个函数都有一个原型属性(prototype),默认指向一个空的原型对象。在原型对象上定义的属性和方法,可以被该函数创建的所有实例共享。这...
JavaScript中的原型链和继承是理解JavaScript面向对象编程的关键概念。在JavaScript中,每个对象都有一个内部属性`[[Prototype]]`,通常可以通过`__proto__`或`Object.getPrototypeOf`来访问。这个属性链接了对象到...
- 寄生式继承:将原型式继承作为基础,再对新对象添加额外功能。 - 寄生组合式继承:通过借用构造函数来继承属性,通过原型链的混成形式来继承方法。这是一种更加高效的继承方式,它避免了在创建子类原型时重写原型...