我正在尝试学习如何在javascript中使用“类”。
这是我的代码:
function Shape(x, y) {
this.x= x;
this.y= y;
}
Shape.prototype.toString= function() {
return 'Shape at '+this.x+', '+this.y;
};
function Circle(x, y, r) {
Shape.call(this, x, y); // invoke the base class's constructor function to take co-ords
this.r= r;
}
Circle.prototype= $.extend(true, {}, Shape.prototype);
Circle.prototype.toString= function() {
return 'Circular '+Shape.prototype.toString.call(this)+' with radius '+this.r;
}
var c = new Circle(1,2,3);
alert(c);
有没有办法在它的构造函数中定义Shape的toString函数,或者在这种情况下没有意义?
答案 0 :(得分:0)
基于我的理解:
示例:http://jsfiddle.net/paptamas/qDSkj/
示例:http://jsfiddle.net/paptamas/cbnLB/
换句话说,显式成员优先于原型定义,当你说
时this.toString = function() ...
您将该函数定义为您的实例的成员(与您的类型的成员相对 - 这也是未经优化的方式)。
问候。