我想我可能做的很傻,但我不确定......
我有这两个类:
function Sprite()
{
}
Sprite.prototype.test1 = function()
{
console.log("test1");
}
function Player()
{
}
Player.prototype.test2 = function()
{
console.log("test2");
}
Player.prototype = new Sprite();
var player = new Player();
player.test1(); // this works
player.test2(); // this doesn't work..
我很难理解为什么test2()不起作用,但test1()确实有效。如果我向这些类添加属性,那么我可以从它们中访问属性,我只是无法从播放器类调用方法。我做错了什么?
答案 0 :(得分:1)
执行此操作时:
Player.prototype.test2 = function()
{
console.log("test2");
}
Player.prototype = new Sprite(); // Original Player.prototype gets overwritten here
首先修改Player.prototype
的属性,然后将Player.prototype
重新分配给新对象,丢失Player
的原始原型。
如果您颠倒这两个陈述的顺序,您的考试将通过。