【发布时间】:2012-12-19 20:56:06
【问题描述】:
我正在尝试编写一个从父类扩展的 javascript 类,重载一个方法并稍微更改它。
例如,它检查一些变量,如果它们被设置为 true,那么它在 parent 上执行相同的方法,否则它执行一些不同的代码。
这是我想出的:
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 = ...时,存储在那个位置的原始函数会丢失,所以你需要提前将它存储在某个地方才能使用它。
标签: javascript oop inheritance