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文档转储到一个大文件中?没关系。你可以做到。关键是您需要以正确的顺序合并它们。