无法添加到对象原型

时间:2011-11-24 01:49:06

标签: javascript

我有这个对象文字:

var RPSPlayer = {....}

我想通过使用:

从这个对象中创建新的“孩子”
var player1 = new Player(randomPlay);

当我尝试将函数添加到Player原型时,如下所示:

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

我收到错误。

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

有问题的一行是:

 this.prototype.play = play;

2 个答案:

答案 0 :(得分:1)

应该简单地说:

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

Player.prototype = RPSPlayer;

答案 1 :(得分:0)

var RPSPlayer = {....}

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

var child = Object.create(RPSPlayer);

但是当我试图通过使用原型设置为玩家添加功能时:

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

它有效!

严重的是,使用Object.create创建实例并区分实例的属性和属于原型的属性。

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

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