2014-12-06 58 views
0

我需要爲對象的顏色屬性賦予一個隨機值的對象編寫構造函數。這是我寫的在JavaScript構造函數中使用函數

var Ghost = function() { 
    // your code goes here 
    var num = Math.floor(Math.rand()*4); 
    if(num === 0){ 
    this.color = "white"; 
    } 
    else if(num === 1){ 
    this.color = "yellow"; 
    } 
    else if(num === 2){ 
    this.color = "purple"; 
    } 
    else if(num === 3){ 
    this.color = "red"; 
    } 
}; 

我從測試套件,錯誤信息代碼戰爭

TypeError: Object #<Object> has no method 'rand' 
    at new Ghost 
     at Test.describe 

不允許我使用一個構造函數中或功能有一些關於測試套件我不明白?

+3

你的意思'的Math.random()'?沒有'Math.rand()'函數。 – ntalbs 2014-12-06 04:12:36

回答

3

該函數的名稱是Math.random而不是​​。

要解釋錯誤消息:

TypeError: Object #<Object> has no method 'rand' 

首先嚐試找到與「蘭特」方法,你試圖調用對象。在這種情況下,它是數學。然後驗證所討論的對象的確有方法。


在一個不相關的音符,你的選擇的代碼可以簡化爲:

var COLOURS = ['white', 'yellow', 'purple', 'red']; 
this.color = COLOURS[Math.floor(Math.random() * 4)]; 
+1

甚至更​​好將'4'更改爲'COLOURS.length'。 – jfriend00 2014-12-06 04:18:27