Je n'ai jamais utilisé les méthodes setter et getter de Javascript auparavant lors de l'écriture de projets, c'est donc un concept qui doit être compris aujourd'hui, j'ai vu ce point de connaissance dans un livre, mais il était encore vague, alors j'ai décidé de faire des recherches et. étude;
Les propriétés d'un objet Javascript sont composées d'un nom, d'une valeur et d'un ensemble de propriétés. Alors d'abord, jetons un coup d'œil aux deux propriétés de l'objet :
propriétés de données, que nous utilisons souvent et que nous devrions connaître
propriétés d'accesseur, également appelées propriétés d'accesseur
Que sont les propriétés des accesseurs ? C'est un ensemble de fonctions qui obtiennent et définissent des valeurs. Dans ECMAScript5, les valeurs des propriétés peuvent être définies à l'aide d'une ou deux méthodes, les deux méthodes sont des getters et des setters, par conséquent, les propriétés définies par les getters et les setters sont appelées propriétés d'accesseur ;
var o = { get val(){ /*函数体*/ return ; }, set val(n){ /*函数体*/ } }
Ce qui précède est le moyen le plus simple de définir un attribut d'accesseur. On peut voir que les méthodes getter et setter sont. en fait, c'est une fonction qui remplace la fonction.
var o = { a:3, get val(){ return Math.pow(this.a,2); } } console.log(o.val);//9 o.val = 100; console.log(o.val);//9
La méthode getter n'a pas de paramètres et a une valeur de retour lorsque la méthode getter est définie séparément, seuls les attributs peuvent le faire ; être obtenu Valeur, la valeur de l'attribut définie ne peut pas être modifiée, garantissant la sécurité des données
var o = { a:3, set val(n){ this.a = n; } } console.log(o.val);//undefined
La méthode setter a des paramètres , là il n'y a pas de valeur de retour ; lorsque la méthode setter est définie seule, la valeur de l'attribut ne peut pas être lue
var o ={ a:3, get val(){ return Math.pow(this.a,n); }, set val(n){ this.a = Math.max(this.a,n); } } console.log(o.a);//3 console.log(o.val);//9 o.val = 10; console.log(o.a);//10 console.log(o.val);//100
via ce qui précède ; Il ressort du code que this fait référence à son objet (c'est-à-dire "o" dans le code
var o ={ a:3, get val(){ return Math.pow(this.a,n); }, set val(n){ this.a = Math.max(this.a,n); } } o.val = 10; var foo = Object.create(o); console.log(foo.val);//10 foo.val = 9; console.log(foo.val);//10
) ; De plus, les propriétés des accesseurs peuvent également être héritées.
Recommandations associées :
Introduction de base aux getters et setters en Javascript
Exemple de partage de code d'implémentation de getter/setter en JavaScript
Implémentation du code d'un getter/setter PHP5 base class_php skills
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!