Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erläuterung von Datenattributen und Zugriffsattributinstanzen in Javascript-Objekten

伊谢尔伦
Freigeben: 2017-05-30 11:40:09
Original
1675 Leute haben es durchsucht

Die Eigenschaften von Objekten in ES5 können in zwei Typen unterteilt werden: „Dateneigenschaften“ und „Accessor-Eigenschaften“.

Datenattribute werden im Allgemeinen zum Speichern von Datenwerten verwendet. Accessor-Attribute entsprechen Set-/Get-Vorgängen und können Datenwerte nicht direkt speichern.

Eigenschaften von Datenattributen: Wert, beschreibbar, aufzählbar, konfigurierbar.

Erklärung: konfigurierbar: wahr/falsch, ob das Attribut durch Löschen gelöscht werden kann, ob die Eigenschaften des Attributs geändert werden können, ob das Attribut als Zugriffsattribut geändert werden kann, der Standardwert ist falsch;

aufzählbar: wahr/falsch, ob er durch eine for-in-Schleife zurückgegeben werden kann, der Standardwert ist falsch

beschreibbar: wahr/falsch, ob der Wert des Attribut kann geändert werden, der Standardwert ist falsch;

Wert: undefiniert, legen Sie den Wert des Attributs fest, der Standardwert ist undefiniert.

Merkmale der Accessor-Eigenschaft: set, get, enumerable, configurable.

Erklärung: konfigurierbar: wahr/falsch, ob das Attribut durch Löschen gelöscht werden kann, ob die Eigenschaften des Attributs geändert werden können, ob das Attribut als Zugriffsattribut geändert werden kann, der Standardwert ist false;

enumerable: true/false, ob es durch eine for in-Schleife zurückgegeben werden kann, der Standardwert ist false

set: Funktion, die Funktion, die beim Lesen des Attributs aufgerufen wird value;

get: function, changes Funktion, die aufgerufen wird, wenn der Eigenschaftswert übergeben wird.

Um einem Objekt Eigenschaften hinzuzufügen oder die Eigenschaften einer vorhandenen Eigenschaft zu ändern, verwenden Sie die Methode Object.defineProperty() oder Object.defineproperties();

Object.defineProperty(object, propertyname, descriptor ):

Parametererklärung: Objekt: das Objekt, dessen Attribute hinzugefügt oder geändert werden müssen;

Eigenschaftsname: der Name des Attributs, Zeichenfolgenformat;

Deskriptor: Beschreibung des Attributs, Festlegen von Datenattributen oder Merkmale von Accessor-Eigenschaften.

Beispielanalyse:

Datenattribute:

var emp = {
 
name:'tom'
 
};
   
 
Object.defineProperty(emp,'name',{
 
writable:false
 
});
 
emp.name = 'jery';
console.log(emp.name);//输出tom,因为已经设置了writable为false
 
 
Object.defineProperty(emp,'age',{
 
configurable:false,
 
writable:true,
 
value:22
 
});
 
console.log(emp.age);//输出22,因为设置了value为22
 
emp.age = 25;
 
console.log(emp.age);//输出25,设置了writable为true
 
delete emp.age;
 
console.log(emp.age);//输出25,设置了configurable为false,此属性删除不了
Nach dem Login kopieren

Accessor-Eigenschaften:

var emp ={
 
_name:'tom',
 
_age:20
 
};
 
  
Object.defineProperty(emp,'name',{
 
get:function(){
 
return this._name;
 
}
 
});
 
console.log(emp.name);//输出tom,由get方法返回_name的值
 
emp.name = 'jery';
 
console.log(emp.name);//输出tom,没有set方法,修改不了_name的值
 
   
Object.defineProperty(emp,'age',{
 
configurable:true,
 
get:function(){
 
 return this._age;
 
}
 
set:function(age){
 
this._age = age;
 
}
 
});
 
emp.age = 25;
console.log(emp.age)//输出25,emp.age=25是使用set方法将25赋值给_age,emp.age是使用get方法将_age的读取出来 
delete emp.age; 
console.log(emp.age);//输出undefined,configurable为true,可以使用delete方法将emp.age属性删除
Nach dem Login kopieren

Hinweis : Das Accessor-Attribut kann eine sehr gute Schutzfunktion haben. Wenn es nur eine Get-Methode gibt, kann es nur gelesen, aber nicht geschrieben werden. Wenn es dagegen nur eine Set-Methode gibt, kann es nur geschrieben, aber nicht gelesen werden

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Datenattributen und Zugriffsattributinstanzen in Javascript-Objekten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!