3
我想學習如何在JavaScript中使用'類'。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);
有沒有一種方法來定義它的構造函數中的該形狀的toString功能,或者它不會在這種情況下,有意義嗎?
在這種情況下'this.toString = function(){...}'不起作用嗎? – Connell
不,它不是。看到區別: http://jsfiddle.net/paptamas/qDSkj/ 和 http://jsfiddle.net/paptamas/cbnLB/ –
原型是正確的方法。它會創建一次toString函數。在構造函數中,每個新建都會創建它。 – Joe