2011-11-24 65 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() { ... }