2013-03-20 134 views
0

我需要使用javascript創建一個「Dice」對象。我有開始,但遇到了一些根本性的錯誤。創建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; 
} 

我想有一個默認的六面模,但如果用戶想要添加不同數量的面,他們應該有這樣的選擇,因此,在重載的構造的嘗試。滾動方法應該模擬「滾動」。

我真的不知道我要去哪裏,但我的方法不起作用 謝謝!

回答

0

您的前兩條語句互相覆蓋,您應該將它們合併爲一條,如下所示。

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

唯一的錯誤在你rollgetValue方法是訪問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