[JS] Créer une nouvelle méthode pour n'importe quel objet

Créer une nouvelle méthode pour n'importe quel objet [JS] - Javascript/Node.js - Programmation

Marsh Posté le 20-01-2017 à 22:26:31    

Bonjour,
 
J'ai une question toute bête mais je ne trouve pas la réponse. Comment créer une méthode globale pour n'importe quel objet ? Ou : comment créer une fonction normale, que j'appelle comme une méthode ?
 
Exemple :
 
Ici je veux créer la méthode smoothScrollTo() mais c'est un exemple, peu importe j'aimerais créer une méthode pour n'importe quel objet (node, string, etc.), ou plutôt, j'aimerais pouvoir appeler une fonction comme une méthode.
 

Code :
  1. function smoothScrollTo(hor, ver)
  2. {
  3. this.scrollTo(hor, ver);
  4. }
  5. window.smoothScrollTo(100, 100);


 
Mon problème est donc que le this dans smoothScrollTo() n'est pas reconnu, et j'aimerais qu'il me retourne l'objet window.
 
 
Autre exemple :

Code :
  1. function surligne()
  2. {
  3. this.setAttribute('style','background-color:lime;');
  4. }
  5. var input = document.querySelector('input');
  6. input.surligne();


Ici, je voudrais que this dans surligne() me retourne input.
 
Vous voyez l'idée.
 
Merci bien de votre aide !


---------------
Galerie
Reply

Marsh Posté le 20-01-2017 à 22:26:31   

Reply

Marsh Posté le 21-01-2017 à 16:26:50    

Comme ça:

Code :
  1. HTMLInputElement.prototype.surligne = function () {
  2.     this.setAttribute('style','background-color:lime;');
  3. }


Ou sur HTMLElement si tu veux que ça s'applique à d'autres types d'éléments.
 
Mozilla explique tout ça: https://developer.mozilla.org/fr/do [...] C3%A9tails


---------------
click clack clunka thunk
Reply

Marsh Posté le 22-01-2017 à 13:09:41    

Oui, il faut que tu le fasses sur la classe maîtresse, tous les autres objets dérivent de celle là (directement ou indirectement). (Vive le modèle objet)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed