JavaScript - 原形[链] :Prototype
2007-09-15 17:03 黄明 阅读(177) 评论(0) 收藏 举报
继承这种形式在 ECMAScript 中原本是用于原形链的。
它以一种有趣的方式实现了继承机制
prototype 对象是个模板,要实例化的对象都以这个为基础。
prototype 对象的任何属性和方法都被传递给那个类的所有实例
Example
来看看如何使用 prototype 来实现继承
在 ECMAScript 的弱类型世界中,这是及其有用的工具,但是实用对象冒充时 不能使用它.
弊端: 不支持多重继承. 原型链会用另一类型的对象重写类的 prototype 属性.
它以一种有趣的方式实现了继承机制
prototype 对象是个模板,要实例化的对象都以这个为基础。
prototype 对象的任何属性和方法都被传递给那个类的所有实例
Example
1 function classA()
2 {}
3 classA.prototype.color = "red";
4 classA.prototype.sayColor = function(){
5 alert(this.color);
6 }
7 function classB()
8 {}
9 classB.prototype = new classA();
注意:调用 classA 的构造函数时,没有给它传递参数。这在原形链中是标准做法。要确保构造函数没有任何参数。2 {}
3 classA.prototype.color = "red";
4 classA.prototype.sayColor = function(){
5 alert(this.color);
6 }
7 function classB()
8 {}
9 classB.prototype = new classA();
来看看如何使用 prototype 来实现继承
1 function classB()
2 {}
3
4 classB.prototype = new classA();
5 classB.prototype.name = "";
6 classB.prototype.sayName = function(){
7 alert(this.name);
8 }
2 {}
3
4 classB.prototype = new classA();
5 classB.prototype.name = "";
6 classB.prototype.sayName = function(){
7 alert(this.name);
8 }
在 ECMAScript 的弱类型世界中,这是及其有用的工具,但是实用对象冒充时 不能使用它.
弊端: 不支持多重继承. 原型链会用另一类型的对象重写类的 prototype 属性.
浙公网安备 33010602011771号