<SCRIPT LANGUAGE="JavaScript">
<!--
var Class = {
isPrototype: function () {},
create: function() {
return function() {
if (arguments && arguments[0] != Class.isPrototype)
this.initialize.apply(this, arguments);
}
},
extend : function(destination, source) {
for (property in source) {
destination[property] = source[property];
}
return destination;
},
inherit: function () {
var superClass = arguments[0];
var proto = new superClass(Class.isPrototype);
for (var i = 1; i < arguments.length; i++) {
if (typeof arguments[i] == "function") {
var mixin = arguments[i];
arguments[i] = new mixin(OpenLayers.Class.isPrototype);
}
Class.extend(proto, arguments[i]);
if((arguments[i].hasOwnProperty && arguments[i].hasOwnProperty('toString')) ||
(!arguments[i].hasOwnProperty && arguments[i].toString)) {
proto.toString = arguments[i].toString;
}
}
return proto;
}
};
var Base=Class.create();
Base.prototype={
x : 1,
y : 2,
initialize : function(){
this.x=100;
this.y=10;
},
area : function(){
return this.x * this.y
}
}
var Child = Class.create();
Child.prototype=Class.inherit(Base,{
initialize : function(){
Base.prototype.initialize.apply(this);
this.x=10;
},
area : function(){
var old=Base.prototype.area.apply(this);
return old + 100000;
}
});
var base=new Base();
var child=new Child();
alert(child.area())
//-->
</SCRIPT>
分享到:
相关推荐
通过对JavaScript的原型继承机制的介绍和实例分析,提出一个改进的“寄生组合模式”,使读者能够更好地理解和应用JavaScript的原型继承。 概述 JavaScript是一门面向Web的编程语言,具有高端、动态以及面向对象的...
JavaScript中基于原型的继承的实现与分析.pdf
在JavaScript中,对象可以直接从另一个对象继承属性和方法,这主要是通过原型链(prototype chain)来实现的。 首先,每个函数都有一个`prototype`属性,这个属性是一个对象,当通过该函数创建新对象时,新对象会...
JavaScript 中的原型和继承详解 在深入探讨编程语言时,我们经常会遇到一些专业术语,比如“原型”和“继承”,它们是面向对象编程中的核心概念。JavaScript 作为一门灵活且功能强大的编程语言,其原型和继承的实现...
当试图访问一个对象的属性时,JavaScript会首先在当前对象中查找,如果找不到,则会向上搜索其原型,直至找到属性或到达原型链的顶端(即`null`)。通过设置一个对象的`__proto__`属性为另一个对象,可以实现继承。 ...
JavaScript中的原型模式是一种实现面向对象编程(OOP)的关键机制,它基于原型继承,使得对象可以从其他对象那里获得属性和方法。在这个模式下,每个函数都有一个`prototype`属性,这个属性是一个对象,用于共享属性...
3. **基于原型**:JavaScript使用基于原型的继承,而不是基于类。 4. **自动内存管理**:具有垃圾回收机制,自动回收不再使用的对象所占用的内存。 5. **动态类型**:变量的类型在运行时确定,不需要事先声明。 6. *...
寄生组合继承解决了组合继承中父类构造函数会被调用两次的问题,通过创建父类的一个不被使用的实例,然后将子类的原型指向这个实例的原型。 ```javascript function inheritPrototype(subType, superType) { let ...
JavaScript的继承机制基于原型链(Prototype Chain),每个对象都有一个原型对象,对象的所有属性和方法都来自于其原型对象。 在JavaScript中,继承机制可以通过以下几种方式实现: 1. 原型链继承(Prototype ...
"JavaScript in Action: JavaScript 实战源码"很可能是针对JavaScript编程的一个实践项目或教程,旨在帮助开发者通过实际代码理解JavaScript的工作原理和应用技巧。在这个实战源码中,我们可能涵盖以下JavaScript的...
闭包是JavaScript中的一个高级特性,允许函数访问并操作其外部作用域的变量,即使在其外部作用域已经结束时也是如此。 3. **对象与原型链**:JavaScript的万物皆对象,理解对象的创建、属性和方法的访问至关重要。...
在本文中,我们将深入探讨JavaScript继承机制的实现方式,并对基于原型的继承、构造函数方式继承、组合继承、寄生式继承等继承机制进行了总结归纳和分析。 基于原型的继承 JavaScript是一门基于原型的语言,它不像...
JavaScript原型继承是面向对象编程在JavaScript中的实现方式之一,它基于原型(Prototype)和对象的特性,使得一个对象可以继承另一个对象的属性和方法。在JavaScript中,每个对象都有一个特殊的内部属性`[...
在 JavaScript 中,继承主要通过原型链(prototype chain)、构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承等方法实现。以下是对这些继承方式的详细解释: 1. **原型链继承**:这是 JavaScript ...
通过以上分析,我们了解到JavaScript中基于原型的继承机制,它与传统基于类的继承有所不同,但仍然提供了实现代码复用和创建复杂对象层次结构的能力。掌握原型继承对于深入理解JavaScript对象模型和设计模式至关重要...
JavaScript的原型继承是其面向对象编程的一大特性,它基于原型链机制实现,允许一个对象可以从另一个对象继承属性和方法。这种继承方式不同于类继承,而是通过将子类的原型对象设置为父类的一个实例来实现。 在...
但是自己对于这个问题一直没有彻底理解,今天花了点时间又看了一遍《Javascript模式》中关于原型实现继承的几种方法,下面来一一说明下,在最后我根据自己的理解提出了一个关于继承比较完整的实现。
通过原型链,我们可以实现基于原型的继承;通过闭包,我们能够控制作用域和访问变量,提升代码的复用性。理解和掌握这些概念,将有助于编写更加高效、可维护的JavaScript代码。在实际编程中,灵活运用这些特性可以...
通过深入理解JavaScript中的原型和原型链,我们可以更好地设计面向对象的程序结构,实现更加灵活的继承和封装。掌握这些核心概念对于成为一名高效的JavaScript开发者至关重要。希望本文能够帮助读者更深刻地理解...