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 :

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
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
 
		init : function(el) {
			el.trim();
		},
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
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 : 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() {
		}
	};
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.