在javascript构造函数中使用函数

时间:2014-12-06 04:10:03

标签: javascript oop

我需要为一个对象编写一个构造函数,该对象为对象的color属性提供一个随机值。这就是我写的

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

我不允许在构造函数中使用函数,或者是否有关于我不理解的测试套件的内容?

1 个答案:

答案 0 :(得分:3)

该函数的名称为Math.random,而非Math.rand

解释错误讯息:

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

首先尝试使用您尝试调用的“rand”方法查找对象。在这种情况下,它是数学。然后验证有问题的对象确实具有该方法。


在不相关的注释中,您的选择代码可以简化为:

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