Les wrapers sur javascript

Par Steeve VERDIEU, il y a 10 ans


Bonjour, j'apprend le javaScript, et j'ai entendu parlé d'une notion assez importante de ce langage, ce sont le Polyfills et les wrapers. j'ai fait une petite recherche a propos de ce sujet, j'ai trouve quelques choses ayant rapport avec les polyfills, et Dieu merci je comprends plus ou moins a quoi ca sert. Mais a propos des wrapers, je n'ai trouvé rien d'interessant. Du coup, e m'adresse a vous et espere que vous pourrez m'aider.
C'est quoi les wrapers?
a quoi ca sert?
et comment metrre en place un tel systeme?

Merci par avance de vos aides.

9 réponses

Maenhyr, il y a 10 ans

Bonjour,

en fait lorsque tu inities un string comme ca par exemple :

var s = "hello world!"; // A string var word = s.substring(s.indexOf(" ")+1, s.length); // Use string properties

ce n'est pas un objet de type String() au sens JS du terme. Ce qui se passe c'est que JavaScript va realiser ca :

var word = new String(s).substring(s.indexOf(" ")+1, s.length); // Use string properties

et tu as ainsi access a toutes les fonctionnalites de l'objet String(). Voila ce qu'est un objet Wraper.

Steeve VERDIEU, il y a 10 ans

Au final, ca n'a pas vraiment d'importance?

Maenhyr, il y a 10 ans

Ca depend, pour des types connus, c'est comme tu le sens. Mais tu peux en creer pour tes propres objets.

Steeve VERDIEU, il y a 10 ans

C'est que, contrairement aux prolyfills je ne vois pas concretement l'interet des Wrapers.

Maenhyr, il y a 10 ans

Ca permet d'avoir une syntaxe plus simple.

var monInt = 1 // au lieu de new Number(1) var monArray = ['toto', 'tata'] // au lieu de new Array('toto', 'tata') var monString = "toto" // au lieu de new String("toto")

Cela permet d'economiser un peu la memoire, les primitifs sont moins gourmands. Tant que tu n'utilises pas de methodes liees a leurs objets, tes variables resteront des primitives.

En fais je pense que c'est plus pour le cote pratique.

Steeve VERDIEU, il y a 10 ans

Alors c'est simple: cela consiste tout simplement à utiliser les types primitifs des objets plutot que les objets eux-memes, et rien d'autres?

betaWeb, il y a 10 ans

Comme l'a bien expliqué @prbaron, l'intérêt est que tu as accès à différentes méthodes directement sur ta variable, sans avoir à en instancier une autre pour pouvoir faire un traîtement dessus.

Maenhyr, il y a 10 ans

J'ai corrige mon premier exemple. Tu peux voir que tant que tu ne fais pas appel a des methodes de String, ta variable reste une primitive. Des que tu appelles une methode, ici 'substring()', JS va transformer ta primitive en objet String.

Steeve VERDIEU, il y a 10 ans

ok, c maintenant plus ou moins clair