Maison  >  Article  >  interface Web  >  Attributs de données et attributs de mémoire des compétences JavaScript notes_javascript

Attributs de données et attributs de mémoire des compétences JavaScript notes_javascript

WBOY
WBOYoriginal
2016-05-16 15:07:081471parcourir

En JavaScript, les propriétés d'un objet sont divisées en deux types : les propriétés des données et les propriétés de la mémoire :

La différence entre les deux attributs

Nous utilisons Object.defineProperty() pour d'abord ressentir intuitivement la différence entre les deux.

La méthode de définition des propriétés des données à l'aide de Object.defineProperty() est la suivante

var obj = {};
Object.defineProperty(obj, "prop", {
value: 1,
writable: true, //可写性
enumerable: true, //可枚举性
configurable: true //设置该属性是否能被删除,以及enumerable属性是否可以被修改
})

La méthode de définition des propriétés de mémoire à l'aide de Object.defineProperty() est la suivante

var obj = {};
Object.defineProperty(obj, "prop", {
get
set
enumerable: true, //可枚举性
configurable: true //设置该属性是否能被删除,以及enumerable属性是否可以被修改
})

À partir de l'exemple ci-dessus, nous observons que l'attribut memory n'a pas les deux attributs value et writable, mais est remplacé par les attributs set et get.

Propriétés de la mémoire

Après avoir examiné les différences intuitives entre les attributs de données et les attributs de mémoire, examinons en détail les attributs de mémoire, un attribut qui est facilement négligé (c'est moi TT).

La plus grande différence entre les attributs de mémoire et les attributs de données est l'ajout de getters/setters, grâce auxquels la valeur de l'attribut peut être exploitée et certaines fonctions pratiques peuvent être implémentées.

//example1
function serialnum() {
var n =1; 
var prop = null;
Object.defineProperty(this, "n", {
get: function() {
return n;
},
set: function(value) {
if(value > n) n = value;
else throw '请输入一个大于n的值';
}
})
}
var obj = new serialnum();
obj.n = 2;
//2
obj.n = 0;
//Uncaught 请输入一个大于n的值

Dans l'exemple ci-dessus, la fonction set est utilisée pour contrôler la plage de valeurs de n.

L'éditeur vous présentera ici l'attribut de stockage des attributs de données js. J'espère qu'il vous sera utile !

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