English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MéthodeEst lié à l'objet, ou à la fonction associée, une méthode est un objet qui est une propriété de la fonction.
La définition des méthodes est faite de la même manière que la définition des fonctions habituelles, avec la différence que vous devez les assigner comme attributs de l'objet.
// Création d'un objet var user = { firstName: "Seagull", lastName : \ age : 22, location : "New Delhi", getName : function() { return this.firstName + "" + this.lastName; } ; //Accéder à la méthode getName() user.getName();Testez et voyez‹/›
Si vous accédez à une méthode sans parenthèses (), elle retourne la définition de la fonction :
user.getName;Testez et voyez‹/›
JavaScript a un mot-clé spécial this, que vous pouvez utiliser dans une méthode pour faire référence à l'objet actuel.
Vous avez peut-être remarqué que nos méthodes sont un peu étranges. Prenez cet exemple :
getName: function() { return this.firstName + "" + this.lastName; }
Le mot-clé this fait référence à l'objet interne actuel où le code est écrit-Donc dans ce cas, this est équivalent àuser.
En d'autres termes, this.firstName signifieCet objetl'attribut firstName.
Vous pouvez le trouver dansMot-clé JSTutorielJSEn savoir plus sur le mot-clé this.
L'exemple suivant ajoute la méthode \
user.greet = function() { return \ ;Testez et voyez‹/›
ECMAScript 5(2009) a introduit les Getters et Setters.
Getter est une méthode pour obtenir une valeur spécifique d'attribut.
Setter est une méthode pour définir une valeur spécifique d'attribut.
Vous pouvez définir des getter et setter sur n'importe quel objet prédéfini ou utilisateur supportant l'ajout de nouvelles propriétés.
Dans cet exemple, nous utilisons get locL'attribut en tant quelocationValeur de l'attribut :
//Création d'un objet var user = { firstName: "Seagull", lastName : "Anna", age : 22, location : "New Delhi", get loc() { return this.location; } ; //Afficher les données provenant de l'objet document.getElementById("para").innerHTML = user.loc;Testez et voyez‹/›
Dans cet exemple, nous utilisons set locL'attribut en tant quelocationValeur de l'attribut :
// Création d'un objet var user = { firstName: "Seagull", lastName : "Anna", age : 22, location : "New Delhi", set loc(x) { this.location = x; } ; // Utilisation de setter pour définir les attributs de l'objet user.loc = "Goa"; // Afficher les données provenant de l'objet document.getElementById("para").innerHTML = user.location;Testez et voyez‹/›
Les deux exemples suivants montrent la différence entre function et getter :
//Création d'un objet var user = { firstName: "Seagull", lastName : "Anna", age : 22, location : "New Delhi", fullName : function() { return this.firstName + "" + this.lastName; } ; // Afficher les données provenant de l'objet document.getElementById("para").innerHTML = user.fullName();Testez et voyez‹/›
// Création d'un objet var user = { firstName: "Seagull", lastName : "Anna", age : 22, location : "New Delhi", get fullName() { return this.firstName + "" + this.lastName; } ; //Afficher les données provenant de l'objet document.getElementById("para").innerHTML = user.fullName;Testez et voyez‹/›
Exemple1 Tenez fullName commeFonctionAccès : user.fullName().
Exemple2 Tenez fullName commeAttributAccès : user.fullName.
Utilisation de Getters et Setters :
Il fournit une syntaxe plus simple
Il permet une syntaxe identique pour les attributs et les méthodes
Il assure une meilleure qualité des données
Très utile pour le traitement du backend
La méthode Object.defineProperty() peut également être utilisée pour ajouter des Getter et des Setter.
Object.defineProperty(object, property, {value : value})
Laissez-nous prendre l'exemple de l'objet "compteur" :
var counter = {i : 0}; Object.defineProperty(counter, "increment", { get: function() {this.i++;} }); Object.defineProperty(counter, "decrement", { get: function() {this.i--;} }); Object.defineProperty(counter, "reset", { get: function() {this.i = 0;}, }); Object.defineProperty(counter, "add", { set: function (value) {this.i += value;} }); Object.defineProperty(counter, "subtract", { set: function (value) {this.i -= value;} }); counter.reset; counter.add = 25; counter.increment;Testez et voyez‹/›