2013-03-20 7 views
0

Мне нужно создать объект «Dice», используя javascript. У меня есть начало, но я сталкиваюсь с некоторыми фундаментальными ошибками.создание объекта кости 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; 
} 

Единственная ошибка в ваших 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