我想寫一個從父類繼承的JavaScript類,重載一個方法並稍微改變它。它會檢查一些變量,如果它們被設置爲true,那麼它對父項執行相同的方法,否則它會執行一些不同的代碼。如何在Javascript中的子類中重載父類的方法?
這是我想出來的:
function Dad(name)
{
this.yell = function()
{
console.log('GRRRRRRR ' + name);
}
}
function Kid(name, age)
{
var parent = new Dad(name);
parent.yell = function()
{
if (age < 15)
console.log('BAAAAA ' + name);
else
parent.yell(); //This is the problem line, how to call this method on
//parent object
}
return parent;
}
var k = new Kid('bob', 13);
k.yell();
然而,問題是,如何調用父對象的方法。
任何想法?
通常的做法是將'yell'方法存儲在'Dad.prototype'中,稍後可以安全地找到它。 –
當您執行'parent.yell = ...'時,存儲在該位置的原始函數將丟失,因此您需要將其存儲在某處以使用它。 –