繁体   English   中英

在javascript构造函数中使用函数

[英]using functions inside javascript constructors

我需要为对象编写一个构造函数,该构造函数为该对象的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

我是否不允许在构造函数中使用函数,或者我不理解的测试套件有什么问题?

该函数的名称是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)];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM