Javascript JS原型多层继承

Javascript JS原型多层继承,javascript,inheritance,prototype,Javascript,Inheritance,Prototype,为什么这样不行 function Component(actor) { this.actor = actor; //... } Component.prototype.run = function() { console.log("Inheritance Error: Component.run()"); }; function Intersection(actor) { if (actor !== undefined) { Compone

为什么这样不行

function Component(actor) {
    this.actor = actor;
    //...
}

Component.prototype.run = function() {
    console.log("Inheritance Error: Component.run()");
};



function Intersection(actor) {
    if (actor !== undefined) {
        Component.call(this, actor);
        ...
    }
}
Intersection.prototype = new Component();

Intersection.prototype.run = function() {
    //...
};



function FloorIntersection(actor, list) {
    Intersection.call(this, actor);
    ...
}
FloorIntersection.prototype = new Intersection();



var fi = new FloorIntersection(actor, list);
fi.run();
当我尝试调用:fi.run时,它会告诉我“未定义不是函数”。然而,如果我这样做

var i = new Intersection(actor);
i.run();
然后它就起作用了


这令人难以置信地沮丧,因为我在其他地方有完全相同的结构ZachCharacterView->Sprite->Component,它工作得很好。

我试过你的代码,它工作得很好。你是对的,它工作得很好。当它都在同一个文档中时。我知道这是一个单独的问题,但我有PHP加载我所有的js文件。我想知道现在我有50多个js文件,如果加载所有这些文件时出现问题,js会抛出错误,因为它在寻找尚未加载的函数?我是否应该将所有js文档转储到一个大文件中?没关系。你可以做到。关键是您需要以正确的顺序合并它们。