簡體   English   中英

JavaScript繼承-無法訪問方法

[英]Javascript inheritance - can't access methods

我想我可能在做些愚蠢的事情,但是我不確定...

我有這兩節課:

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()起作用。 如果將屬性添加到這些類中,那么我可以從這兩個類中訪問屬性,只是無法從播放器類中調用方法。 我究竟做錯了什么?

執行此操作時:

Player.prototype.test2 = function()
{
     console.log("test2");
}

Player.prototype = new Sprite(); // Original Player.prototype gets overwritten here

您首先修改Player.prototype的屬性,然后將Player.prototype重新分配給新對象,從而失去Player的原始原型。

如果您顛倒這2條語句的順序,則測試將通過。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM