[英]function returns function in javascript
我有一個數組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)];
// => }
函數有什么問題?
調用pick_random_color
之后是否不需要括號?
color = this.pick_random_color();
您似乎正在做的是將 color
分配給pick_random_color
函數,而不執行它。
你忘了原諒。 您必須將()添加到this.pick_random_colors
那是因為this.pick_random_color
是對函數的引用。 您應該通過編寫this.pick_random_color()
執行此功能。
但請確保this
關鍵字引用原始對象
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.