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;
}

デフォルトの 6 面ダイスが必要ですが、ユーザーが別の数の面を追加したい場合は、そのオプションを使用する必要があるため、オーバーロードされたコンストラクターを試みます。roll メソッドは、「ローリング」をシミュレートすることになっています。

どこが間違っているのかよくわかりませんが、私の方法は機能していません ありがとうございます!

4

1 に答える 1

0

最初の 2 つのステートメントは互いにオーバーライドしています。次のように、それらを 1 つに結合する必要があります。

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

rollメソッドとメソッドの唯一のエラーは、オブジェクトのプロパティであるため、変数getValueにアクセスするには をsides使用する必要があることです。2 つの機能を 1 つに簡単に結合することもできます。this.sidesDie

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 に答える