0

我需要使用 javascript 创建一个“骰子”对象。我有一个开始,但遇到了一些基本错误。

var Die = function (){
    this.sides = 6;
}
var Die = function (value){
   this.sides = value;
}
Die.prototype.roll = function(){
    var result = Math.floor((Math.random()*sides)+1);
    return;
}
Die.prototype.getValue = function(){
    return sides;
}

我想要一个默认的六面骰子,但如果用户想要添加不同数量的面,他们应该有这个选项,因此尝试重载构造函数。roll 方法应该模拟“滚动”。

我真的不知道我哪里出错了,但我的方法不起作用谢谢!

4

1 回答 1

0

您的前两个语句相互覆盖,您应该将它们组合成一个,如下所示。

var Die = function(sides) {
  this.sides = sides || 6;
}

roll您的和方法中唯一的错误getValue是要访问sides您必须使用的变量this.sides,因为它是Die对象的属性。这两个功能也可以很容易地组合成一个。

Die.prototype.roll = function() {
  return Math.floor((Math.random()*this.sides)+1);
}

示例用法:

var die = new Die();
console.log(die.roll()); // --> 4
var five_sided_die = new Die(5);
console.log(five_sided_die.roll()); // --> 3
于 2013-05-16T14:44:50.720 回答