programmer en object orienté en JS la différence entre deux méthodes ?
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 :oops: (oui je sais ...), donc voilà la base :
Code:
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 |
Maintenant j'essaye de créer une fonction équivalente à trim() en php, mais en l'appelant ainsi dans init() :
Code:
1 2 3 4
|
init : function(el) {
el.trim();
}, |
Mais c'est là que je ne comprends pas la méthode car suivante fonctionne :
Code:
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 ...
}
})(); |
Pouvez-vous m'expliquer pour quoi je ne peux pas faire comme ceci :
Code:
1 2 3 4 5 6 7 8 9
|
manager.fn = manager.prototype = {
init : function(el) {
el.trim()
},
trim : function() {
}
}; |
Sous la forme json (dites moi si je me trompe de terme).
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.