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.
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.
Ca depend, pour des types connus, c'est comme tu le sens. Mais tu peux en creer pour tes propres objets.
C'est que, contrairement aux prolyfills je ne vois pas concretement l'interet des Wrapers.
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.
Alors c'est simple: cela consiste tout simplement à utiliser les types primitifs des objets plutot que les objets eux-memes, et rien d'autres?
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.
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.