2011-11-24 101 views
0

我有這樣的對象常量:無法添加到對象原型

var RPSPlayer = {....} 

,我想通過做出新的從該對象的「孩子」:

var player1 = new Player(randomPlay); 

當我嘗試添加功能Player這樣的原型:

function Player(play) { 
    this.prototype.play = play; 
    return play; 
}; 

我得到一個錯誤。

play是一個函數,返回Player函數獲取的字符串作爲參數。

問題的行是:

this.prototype.play = play; 
+0

這是很好的說是什麼錯誤。 –

+0

@DᴀᴠᴇNᴇᴡᴛᴏɴ該錯誤是obvouisly「不能設置屬性播放未定義」 – Raynos

+1

@Raynos是的。然而,海報應該說出他們得到的錯誤。 –

回答

1

它應該是簡單的:

function Player(play) { 
    this.play = play; 
} 

Player.prototype = RPSPlayer; 
0

var RPSPlayer = {....}

,我想通過做出新的從該對象的 「孩子」:

var child = Object.create(RPSPlayer);

但是當我嘗試使用原型添加功能,以玩家:

RPSPlayer.play = function() { ... }

它的作品!

儘管如此,使用Object.create來創建您的實例並區分屬於原型的實例和屬性的屬性。

如果你想要一個實例,有自己的屬性,然後寫它

child.play = function() { ... }