J'ai un tableau this.colors = [RED, BLUE, GREEN]
, et parfois je voudrais choisir une couleur aléatoire de ce tableau. Quand je le faire de cette façon, le résultat est normal:fonction renvoie la fonction en javascript
rand_color = this.colors[Math.floor(Math.random() * this.colors.length)]
javascript: console.log(rand_color)
// => rgb(211, 65, 65)
Mais quand je l'ai enveloppé dans la fonction:
this.pick_random_color = function() {
return this.colors[Math.floor(Math.random() * this.colors.length)];
}
cette fonction ne retourne pas de valeur aléatoire. Au lieu de cela, je reçois ce message dans le journal:
color = this.pick_random_color;
javascript: console.log(color);
// => this.pick_random_color = function() {
// => return this.colors[Math.floor(Math.random() * this.colors.length)];
// => }
Quel est le problème avec la fonction?
Je suis assez sûr que votre utilisation de 'this' est obscurcissent votre code, il est tout à fait inutile. DaveShaw a 100% raison, vous affectez une variable null à 'color' dans ce cas. – Alex