在Javascript中,我有一个继承自基础对象的子对象。我试图从子对象中调用基类函数,但我收到一个错误,说这个函数不存在。
你能告诉我如何在子类中调用基类函数吗?
function BaseClass()
{
this.render = function()
{
alert("BaseClass::render()");
}
}
function ChildClass()
{
this.render = function()
{
alert("BaseClass::render()");
// Now to CALL the base class render() function
this.baseRender = BaseClass.prototype.render;
this.baseRender(); // I get the error: "The function this.BaseRender() does not exist"
}
}
ChildClass.prototype = new BaseClass(); // inherit from BaseClass
ChildClass.prototype.constructor = ChildClass; // put the correct constructor reference back (not essential)
答案 0 :(得分:1)
编辑:好的,要么我以某种方式看不到代码的最后两行,要么在我开始撰写帖子后进行了快速编辑。
你没有子课,你有两个不相关的课。
render()
上的BaseClass
方法目前不是其原型的一部分,它被分配给使用new BaseClass()
创建的每个实例。这意味着BaseClass.prototype.render
未定义。
(并且你在分配 this.baseRender
和试图调用this.BaseRender()
之间改变了从小写到大写“b”的案例,但我认为这可能只是一个错字。 )
我认为做你想做的最简单的改变是:
function BaseClass()
{
// instance init here
}
BaseClass.prototype.render = function() {
alert("BaseClass::render()");
}
请记住,JavaScript并没有真正拥有“类”。