开发者问题收集

无法添加到对象原型

2011-11-24
103

我有这个对象文字:

var RPSPlayer = {....}

我想通过使用以下方法从此对象创建新的“子对象”:

var player1 = new Player(randomPlay);

当我尝试向 Player 原型添加如下函数时:

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

我收到错误。

play 是一个返回字符串的函数,Player 函数会将其作为参数获取。

有问题的行是:

 this.prototype.play = play;
2个回答

它应该简单如下:

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

Player.prototype = RPSPlayer;
Ry-
2011-11-24

var RPSPlayer = {.... }

我想通过使用以下方法从此对象创建新的“子对象”:

var child = Object.create(RPSPlayer);

但是当我尝试通过使用以下方法通过原型设计向播放器添加功能时:

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

它有效!

不过,认真地说,使用 Object.create 创建您的实例,并区分实例的自身属性和属于原型的属性。

如果您希望实例具有自己的属性,请写入它

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

Raynos
2011-11-24