Bonjour,
J'essaye de créer une librairie perso en JS, et je cherche à percer la programmation en objet avec les tutos que j'ai trouvé sur ce site mais j'ai tout de même des questions :
Je commence par un bout de code que j'ai repris d'une librairie déjà existante (oui je sais ...), donc voilà la base :
Maintenant j'essaye de créer une fonction équivalente à trim() en php, mais en l'appelant ainsi dans init() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 (function() { var window = this, manager = window.manager = window.$ = function(el) { return new manager.fn.init(el); }; manager.fn = manager.prototype = { init : function(el) { ... code de sélection des éléments .... }, }; })(); $() // c'est ok ça fonction
Mais c'est là que je ne comprends pas la méthode car suivante fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 init : function(el) { el.trim(); },
Pouvez-vous m'expliquer pour quoi je ne peux pas faire comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 (function() { ... CODE ... manager.fn = manager.prototype = { init : function(el) { el.trim(); }, }; String.prototype.trim = function() { ... CODE QUI TRIM ... } })();
Sous la forme json (dites moi si je me trompe de terme).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 manager.fn = manager.prototype = { init : function(el) { el.trim() }, trim : function() { } };
Dans le premier cas, j'ai fait une "extension" à l'objet "String" via prototype, mais n'y a t'il pas moyen de faire la même chose avec la deuxième méthode ?
Merci d'avance de vos explications.
Bien cordialement.
Partager