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的主要特点:** 1. **解释型语言**:JavaScript代码通常在浏览器中由JavaScript引擎解释执行,无需预先编译。 2. **基于原型的继承**:...
3. **对象与原型链**:JavaScript采用基于原型的面向对象,对象可以包含属性和方法,理解原型链是理解JavaScript继承的关键。 4. **事件处理**:JavaScript常用于处理用户交互,如点击、鼠标移动、键盘输入等事件,...
理解原型链和继承机制对于深入学习JavaScript至关重要。 8. **闭包**:闭包是JavaScript中的一个重要特性,它允许函数访问和修改其外部作用域的变量,即使在其外部函数已经执行完毕后。 9. **异步编程**:...
8. **原型链**:JavaScript中的继承基于原型链机制,理解Object.prototype、__proto__和构造函数的关系。 9. **ES6新特性**:如类(class)、箭头函数、模板字符串、解构赋值、Promise、async/await等,这些都是...
JavaScript的原型继承是一种非常灵活的继承机制,它允许对象直接继承另一个对象的属性和方法。 ##### **3.1 原型继承的实现** 实现原型继承的基本思路是让一个对象的`__proto__`属性指向另一个对象。例如: ```...
现在让我们来分析一个具体的原型继承例子: ```javascript function Gizmo(id) { this.id = id; } Gizmo.prototype.toString = function() { return "gizmo" + this.id; }; function Hoozit(id) { this.id = id...
`ArrayList02`的例子展示了原型链继承,通过将父类的实例赋值给子类的`prototype`,使得子类实例可以访问父类的方法。`ArrayList02.prototype = new CollectionBase();`这一行代码就是关键,它让`ArrayList02`的...
### JavaScript原型继承工作原理及实例详解 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,在Web开发中扮演着重要角色。其独特的面向对象机制是通过原型继承来实现的,这种机制使得JavaScript能够灵活地...
这里我们将深入探讨JavaScript继承的特性以及实践应用。 首先,JavaScript的继承基于原型链。每个对象都有一个`__proto__`属性,指向创建它的构造函数的原型对象。当试图访问对象的一个属性时,JavaScript会沿着...
对象也可以通过原型链实现继承,这是JavaScript面向对象编程的关键特性。 事件处理是JavaScript与用户交互的基础,如点击按钮、鼠标移动等。在网页中,JavaScript可以监听这些事件并执行相应的回调函数。压缩包中的...
1. **JavaScript继承** - **原理**:JavaScript的继承主要是通过原型链(prototype chain)来实现的。每个JavaScript对象都有一个内部属性[[Prototype]],通常可以通过`__proto__`访问,或通过`Object....
这种模式避免了原型链继承中的引用问题,但失去了原型链的动态性,不能利用原型上的方法。 组合继承是原型链继承和构造函数继承的结合,它既保持了原型链的属性继承,又解决了引用类型的复制问题。寄生继承是通过...
JavaScript采用原型链实现对象继承,一个对象可以继承另一个对象的属性和方法。 10. **模块化**: ES6引入了模块系统,通过import和export关键字实现代码的组织和复用。 11. **Promise和async/await**: ...
7. **原型链**:JavaScript的继承机制基于原型链,每个对象都有一个proto属性,指向其构造函数的prototype。通过原型链,子对象可以访问父对象的属性和方法。 8. **ES6新特性**:包括箭头函数、模板字符串、解构...
2. **原型链(Prototype Chain)**:JavaScript对象基于原型进行继承,每个对象都有一个`__proto__`属性,指向创建它的构造函数的原型。通过原型链,子对象可以访问父对象的所有属性和方法,实现代码复用。 3. **...
在这个例子中,`Button`通过`Object.create(Control.prototype)`继承了`Control`的原型,并通过`Control.call(this, id)`调用了父类的构造函数。这样,`Button`实例就可以拥有`Control`的所有属性和方法,同时还能...
JavaScript中的...总结,JavaScript中的prototype属性是实现面向对象编程的重要组成部分,它涉及到继承、方法共享以及原型链等核心概念。理解并熟练运用这些知识,能够帮助开发者构建更复杂、更高效的应用程序。
9. **面向对象编程**:JavaScript支持基于原型的面向对象编程,包括构造函数、原型链和实例化对象。例子可能会涉及类的模拟和继承的概念。 10. **JavaScript库和框架**:虽然压缩包未明确提及,但学习JavaScript...
原型链的概念使得JavaScript能够实现动态面向对象编程,并且提供了非常灵活的对象创建与继承的方式。在实际开发过程中,开发者经常需要实现对象之间的继承关系,而JavaScript提供了多种继承的方法。本文将重点介绍两...