Heim  >  Artikel  >  Web-Frontend  >  Datenattribute und Speicherattribute von JavaScript-Notizen_Javascript-Fähigkeiten

Datenattribute und Speicherattribute von JavaScript-Notizen_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 15:07:081488Durchsuche

In JavaScript werden die Eigenschaften eines Objekts in zwei Typen unterteilt: Dateneigenschaften und Speichereigenschaften:

Der Unterschied zwischen den beiden Attributen

Wir verwenden Object.defineProperty(), um zunächst intuitiv den Unterschied zwischen den beiden zu spüren.

Die Methode zum Festlegen von Dateneigenschaften mithilfe von Object.defineProperty() ist wie folgt

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

Die Methode zum Festlegen von Speichereigenschaften mithilfe von Object.defineProperty() ist wie folgt

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

Aus dem obigen Beispiel sehen wir, dass das Speicherattribut nicht die beiden Attribute Wert und Schreibbar hat, sondern durch die Attribute Set und Get ersetzt wird.

Speichereigenschaften

Nachdem wir uns die intuitiven Unterschiede zwischen Datenattributen und Speicherattributen angesehen haben, werfen wir einen detaillierten Blick auf Speicherattribute, ein Attribut, das leicht übersehen wird (das bin ich, TT).

Der größte Unterschied zwischen Speicherattributen und Datenattributen besteht in der Hinzufügung von Gettern/Settern, mit denen der Wert des Attributs bearbeitet und einige praktische Funktionen implementiert werden können.

//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的值

Im obigen Beispiel wird die Set-Funktion verwendet, um den Wertebereich von n zu steuern.

Der Herausgeber wird Ihnen hier das Speicherattribut für js-Datenattribute vorstellen. Ich hoffe, es wird Ihnen hilfreich sein!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn