我有一个数组this.colors = [RED, BLUE, GREEN]
,有时候我想从这个数组中选择一种随机颜色。
当我这样做时,结果是正常的:
rand_color = this.colors[Math.floor(Math.random() * this.colors.length)]
javascript: console.log(rand_color)
// => rgb(211, 65, 65)
但是当我把它包装在函数中时:
this.pick_random_color = function() {
return this.colors[Math.floor(Math.random() * this.colors.length)];
}
该函数不返回随机值。相反,我在日志中收到此消息:
color = this.pick_random_color;
javascript: console.log(color);
// => this.pick_random_color = function() {
// => return this.colors[Math.floor(Math.random() * this.colors.length)];
// => }
这个功能出了什么问题?
答案 0 :(得分:7)
拨打pick_random_color
后,您不需要括号吗?
color = this.pick_random_color();
您似乎正在做的是将 color
分配给pick_random_color
函数,而不是执行它。
答案 1 :(得分:2)
答案 2 :(得分:2)
这是因为this.pick_random_color
是对函数的引用。您应该通过编写this.pick_random_color()
来执行此功能。
但请确保this
关键字引用原始对象