`

javascript继承小例子(动态原型方法)

阅读更多
function Polygon(iSides){
	this.sides = iSides;
	
	if(typeof Polygon._initialized == "undefined") {
	
		Polygon.prototype.getArea = function(){
			
			return 0;
		};
		
		Polygon._initialized = true;
	}
}

function Triangle(iBase , iHeight){

	Polygon.call(this , 3);
	this.base = iBase;
	this.height = iHeight;
	
	// Triangle._initialized 定义Triangle类的常量(与java中的静态常量类式)
	if(typeof Triangle._initialized == "undefined"){
		
		// 错误的,可以对prototype的状态进行修改,但重新定义prototype,只会在未来的对象中实现,但这时对象已经生成,所以prototype中将保持原有的状态存在于已生成的对象中,所以alert(triangle.getArea())会报错。
		//Triangle.prototype = new Polygon();
		Triangle.prototype.getArea = function(){
			
			return 0.5 * this.base * this.height;
		}
		
		Triangle._initialized = true;
	}
}

function myload(){
	// 这种方式调用是错误的,Triangle._initialized为类常量,不可使用
	//alert(triangle._initialized);
	var triangle = new Triangle(12 , 4);
	//alert(triangle._initialized);
	
	alert(triangle.sides);
	alert(triangle.getArea());
}
分享到:
评论

相关推荐

    探索JavaScript的原型链:原型继承的奥秘

    在JavaScript中,原型继承是实现对象间属性和方法共享的关键。 **JavaScript的主要特点:** 1. **解释型语言**:JavaScript代码通常在浏览器中由JavaScript引擎解释执行,无需预先编译。 2. **基于原型的继承**:...

    300个JavaScript的小例子

    3. **对象与原型链**:JavaScript采用基于原型的面向对象,对象可以包含属性和方法,理解原型链是理解JavaScript继承的关键。 4. **事件处理**:JavaScript常用于处理用户交互,如点击、鼠标移动、键盘输入等事件,...

    经典的JavaScript小例子

    理解原型链和继承机制对于深入学习JavaScript至关重要。 8. **闭包**:闭包是JavaScript中的一个重要特性,它允许函数访问和修改其外部作用域的变量,即使在其外部函数已经执行完毕后。 9. **异步编程**:...

    javascript100个小例子

    8. **原型链**:JavaScript中的继承基于原型链机制,理解Object.prototype、__proto__和构造函数的关系。 9. **ES6新特性**:如类(class)、箭头函数、模板字符串、解构赋值、Promise、async/await等,这些都是...

    浅析javascript原型继承机制

    JavaScript的原型继承是一种非常灵活的继承机制,它允许对象直接继承另一个对象的属性和方法。 ##### **3.1 原型继承的实现** 实现原型继承的基本思路是让一个对象的`__proto__`属性指向另一个对象。例如: ```...

    浅析Javascript原型继承 推荐第1/2页

    现在让我们来分析一个具体的原型继承例子: ```javascript function Gizmo(id) { this.id = id; } Gizmo.prototype.toString = function() { return "gizmo" + this.id; }; function Hoozit(id) { this.id = id...

    JavaScript继承详解.doc

    `ArrayList02`的例子展示了原型链继承,通过将父类的实例赋值给子类的`prototype`,使得子类实例可以访问父类的方法。`ArrayList02.prototype = new CollectionBase();`这一行代码就是关键,它让`ArrayList02`的...

    javascript原型继承工作原理和实例详解_.docx

    ### JavaScript原型继承工作原理及实例详解 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,在Web开发中扮演着重要角色。其独特的面向对象机制是通过原型继承来实现的,这种机制使得JavaScript能够灵活地...

    JavaScript继承的特性与实践应用深入详解

    这里我们将深入探讨JavaScript继承的特性以及实践应用。 首先,JavaScript的继承基于原型链。每个对象都有一个`__proto__`属性,指向创建它的构造函数的原型对象。当试图访问对象的一个属性时,JavaScript会沿着...

    javascript小例子代码

    对象也可以通过原型链实现继承,这是JavaScript面向对象编程的关键特性。 事件处理是JavaScript与用户交互的基础,如点击按钮、鼠标移动等。在网页中,JavaScript可以监听这些事件并执行相应的回调函数。压缩包中的...

    JavaScript继承与多继承实例分析.docx

    1. **JavaScript继承** - **原理**:JavaScript的继承主要是通过原型链(prototype chain)来实现的。每个JavaScript对象都有一个内部属性[[Prototype]],通常可以通过`__proto__`访问,或通过`Object....

    史上最为详细的javascript继承(推荐)

    这种模式避免了原型链继承中的引用问题,但失去了原型链的动态性,不能利用原型上的方法。 组合继承是原型链继承和构造函数继承的结合,它既保持了原型链的属性继承,又解决了引用类型的复制问题。寄生继承是通过...

    javascript多种经典例子

    JavaScript采用原型链实现对象继承,一个对象可以继承另一个对象的属性和方法。 10. **模块化**: ES6引入了模块系统,通过import和export关键字实现代码的组织和复用。 11. **Promise和async/await**: ...

    JavaScript各种使用例子

    7. **原型链**:JavaScript的继承机制基于原型链,每个对象都有一个proto属性,指向其构造函数的prototype。通过原型链,子对象可以访问父对象的属性和方法。 8. **ES6新特性**:包括箭头函数、模板字符串、解构...

    javascript高级代码例子

    2. **原型链(Prototype Chain)**:JavaScript对象基于原型进行继承,每个对象都有一个`__proto__`属性,指向创建它的构造函数的原型。通过原型链,子对象可以访问父对象的所有属性和方法,实现代码复用。 3. **...

    javascript控件开发之继承关系

    在这个例子中,`Button`通过`Object.create(Control.prototype)`继承了`Control`的原型,并通过`Control.call(this, id)`调用了父类的构造函数。这样,`Button`实例就可以拥有`Control`的所有属性和方法,同时还能...

    JavaScript中的prototype(原型)属性研究

    JavaScript中的...总结,JavaScript中的prototype属性是实现面向对象编程的重要组成部分,它涉及到继承、方法共享以及原型链等核心概念。理解并熟练运用这些知识,能够帮助开发者构建更复杂、更高效的应用程序。

    JavaScript 例子(JavaScript 源码html格式)

    9. **面向对象编程**:JavaScript支持基于原型的面向对象编程,包括构造函数、原型链和实例化对象。例子可能会涉及类的模拟和继承的概念。 10. **JavaScript库和框架**:虽然压缩包未明确提及,但学习JavaScript...

    js原型继承的两种方法对比介绍.docx

    原型链的概念使得JavaScript能够实现动态面向对象编程,并且提供了非常灵活的对象创建与继承的方式。在实际开发过程中,开发者经常需要实现对象之间的继承关系,而JavaScript提供了多种继承的方法。本文将重点介绍两...

Global site tag (gtag.js) - Google Analytics