我有2類:動物(父母)和狗(動物的'孩子'), 當我創建一個動物的對象,並嘗試提醒動物的名字, 我得到了undefined,而不是她的真名。爲什麼? (約雙崗抱歉)JavaScript的繼承
function Animal(name, year){
alert(name);
this.name = name;
this.year = year;
this.age = function(){
var n = new Date().getFullYear();
return n - this.year;
};
}
function Dog(name, year, color, type) {
this.color = color;
this.type = type;
Animal.call(this, name, year);
//override method age of animal
this.age = function(){
var n = new Date().getFullYear();
return (n - this.year) * 7;
};
Dog.prototype.age();
}
Dog.prototype = new Animal();
(這個js命名的類:JsClass.js)
和HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="JsClass.js"></script>
<script type="text/javascript">
var p1 = new Animal("rex",2008);
</script>
<title>Insert title here</title>
</head>
<body>
</body>
</html>
(使用Eclipse)
謝謝!
當我創建動物的對象,並嘗試以提醒動物的名字
作爲參考,通常在設置自己的字段之前調用父構造函數,而不是之後。不過,不應該導致你看到的問題。 – cHao
現在我看到,如果我刪除這一行: Dog.prototype = new Animal(); 它提醒動物的名字。那麼這條線有什麼問題?我應該在哪裏放? – user2097810