請用JavaScript編寫一個Car類,包含:一個屬性pertrol,表示車輛目前剩餘的汽油方法run,每調用一次,汽車的pertrol含量就會減一方法clone,用於深度複製Car對象方法cloneCount,用於獲取clone的次數,使用clone方法複製得到的對象的cloneCount應被重置爲0。請考慮Car類可能會被繼承的情況下的最優方案
function Car(l){
this.pertrol= l || 200;
this.cloneNum = 0;
}
Car.prototype = {
constructor : Car,
clone:function(){
this.cloneNum++;
function sub(){
}
sub.prototype = this.constructor.prototype;
var clone = new sub();
for(var i in this){
if(this.hasOwnProperty(i)){
clone[i]=this[i];
}
}
clone.cloneNum=0;
return clone;
},
cloneCount:function(){
return this.cloneNum;
},
run:function(){
}
}
var carA = new Car();
var c1 = carA.clone(); //c1 carA cloneNum=1, c1 cloneNum=0;
var c2 = carA.clone(); //c2 carA cloneNum=2, c2 cloneNum=0;
var cc1 = c1.clone(); //cc1 c1 cloneNum=1, cc1 cloneNum=0;
var cc1a = c1.clone();
var cc1b = c1.clone();
var $carA_cloneCount = carA.cloneCount();
var $c1_cloneCount = c1.cloneCount();
var $c2_cloneCount = c2.cloneCount();
var $cc1_cloneCount = cc1.cloneCount();
http://bbs.csdn.net/topics/390716167