簡體   English   中英

函數在javascript中返回函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM