JeuWeb - Crée ton jeu par navigateur
[javascript] portée du this - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [javascript] portée du this (/showthread.php?tid=6564)

Pages : 1 2


RE: [javascript] portée du this - niahoo - 11-01-2013

Mais tu perds le this que t'envoie jquery, et donc la possibilité de choper l'item via this voire mieux, de le passer à jQ directement via $(this).

Donc je préfère largement la solution de sephi qui consiste à déclarer un alias autour du scope pour l'utiliser dans la fonction. Par contre, par convention cette variable se nomme that, bien qu'on retrouve souvent self.


RE: [javascript] portée du this - Sephi-Chan - 11-01-2013

Dans le cas de la méthode jQuery.each on a accès à l'élément courant par le second argument du callback. Il n'y a donc pas vraiment de perte d'information.


RE: [javascript] portée du this - Maks - 11-01-2013

(11-01-2013, 12:04 AM)niahoo a écrit : Par contre, par convention cette variable se nomme that, bien qu'on retrouve souvent self.

Jamais entendu parlé de cette "convention".


RE: [javascript] portée du this - Sephi-Chan - 11-01-2013

Idem. Dans l'usage, j'ai souvent vu that, self et me. Et je pense que c'est plutôt sain de s'en tenir à ce genre de nom ou au nom qui caractérise le mieux l'objet courant.


RE: [javascript] portée du this - niahoo - 11-01-2013

ma source c'est le bouquin J*v*Script : The Good Parts de Douglas Crockford.

Mais j'avoue que j'ai beaucoup plus croisé de self que de that.

désolé pour le filtre anti script Smile


RE: [javascript] portée du this - Plume - 13-01-2013

La meilleure chose est la deuxième partie de la réponse de Sephi-Chan : utiliser un nom qui caractérise le mieux l'objet courant. self, that, me sont tous des noms qui n'ont aucun sens. Et c'est toujours plus vrai à mesure qu'en JavaScript les contextes ont vite fait de changer.


RE: [javascript] portée du this - niahoo - 13-01-2013

Ces noms n'ont ni plus ni moins de sens que this. Dans une fonction, tu ne te dis pas que this n'a pas de sens, celui-ci coule de source : c'est le contexte auquel s'applique la méthode. Donc, des noms synonymes ont le même effet et le même sens. (Je reconnais qu'en javascript ça peut être différent mais on peut (et on doit, à mon avis) éviter ça).

Ensuite, on pourrait imaginer un langage ou au lieu d'utiliser this, on utiliserait le nom de la classe.

Code :
class User
    
    method sayHello -> "Hello, my name is " + User.name

ça me paraît sympa en fait Smile

Je mettrais ma main à couper qu'un tel langage existe, si je n'en avais pas autant besoin. Je suppose qu'il doit y avoir un autre opérateur pour les méthodes statiques.


Re: [javascript] portée du this - Plume - 13-01-2013

Je ne le dis pas parce que this, je n'ai aucun impact.


RE: [javascript] portée du this - Maks - 13-01-2013

niahoo > Pour moi un langage où on utiliserait le nom de classe, ça serait un contexte de classe et non d'objet. Je trouverais ça encore plus déroutant ^^

Sinon pour résumer :

- Utiliser Coffeescript (ou TypeScript, Livescript, ect.) pour profiter du fat arrow
- Utiliser _.bind et _.bindAll de la libraire underscore
- Utiliser la conservation de contexte classique me/that/self/_this = this (ou notation plus précise)
- Function::bind (+ polyfill)
- Attendre l'ES6 et le fat arrow


RE: [javascript] portée du this - niahoo - 13-01-2013

kamoulox