Maison >interface Web >js tutoriel >Méthodes de définition et de lecture JavaScript

Méthodes de définition et de lecture JavaScript

小云云
小云云original
2017-12-07 15:46:371477parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn