JavaScript ES5 Object Methods
- Vorige pagina JS object prototype
- Volgende pagina JS functie definitie
ECMAScript 5 (2009) voegde veel nieuwe objectmethoden toe aan JavaScript.
Beheer object
// Maak een object met het bestaande object als prototype Object.create() // Voeg of wijzig objectproperties toe Object.defineProperty(object, property, descriptor) // Voeg of wijzig objectproperties toe Object.defineProperties(object, descriptors) // Toegang tot property Object.getOwnPropertyDescriptor(object, property) // Retourneer een array met alle properties Object.getOwnPropertyNames(object) // Toegang tot het prototype Object.getPrototypeOf(object) // Retourneer een array met de enumerable properties Object.keys(object)
Bescherm object
// Voorkom het toevoegen van properties aan het object Object.preventExtensions(object) // Retourneer true als properties kunnen worden toegevoegd aan het object Object.isExtensible(object) // Voorkom wijzigingen aan de objectproperties (niet de waarden) Object.seal(object) // Retourneer true als het object gesloten is Object.isSealed(object) // Voorkom wijzigingen aan het object Object.freeze(object) // Retourneer true als het object gefreeze is Object.isFrozen(object)
Wijzig propertywaarde
Syntaxis
Object.defineProperty(object, property, {value : value)
Instantie
Dit voorbeeld wijzigt de waarde van de property:
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; // Wijzig property Object.defineProperty(person, "language", {value : "NO"});
Wijzig metadata
ES5 staat het wijzigen van de volgende property metadata toe:
writable : true // Waarde van property is wijzigbaar enumerable : true // Property kan worden opgenomen in enumerate configurable : true // Property kan opnieuw worden ingesteld
writable : false // Waarde van property niet wijzigbaar enumerable : false // Property niet opnemen in enumerate configurable : false // Eigenschap kan niet opnieuw worden geconfigureerd
ES5 staat het wijzigen van getter en setter toe:
// Definieer de getter get: function() { return language } // Definieer de setter set: function(value) { language = value }
Dit voorbeeld stelt language in als alleen-lezen:
Object.defineProperty(person, "language", {writable:false});
Dit voorbeeld maakt language niet enumerable:
Object.defineProperty(person, "language", {enumerable:false});
Lijst alle eigenschappen op
Dit voorbeeld lijst alle eigenschappen van het object op:
Instantie
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; Object.defineProperty(person, "language", {enumerable:false}); Object.getOwnPropertyNames(person); // Retourneer een array van arrays
Lijst de enumerable eigenschappen op
Dit voorbeeld lijst alleen de enumerable eigenschappen van het object op:
Instantie
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; Object.defineProperty(person, "language", {enumerable:false}); Object.keys(person); // Retourneer een array van enumerable eigenschappen
Voeg eigenschap toe
Dit voorbeeld voegt een nieuwe eigenschap toe aan het object:
Instantie
// Maak het object const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; // Voeg eigenschap toe Object.defineProperty(person, "year", {value:"2008"});
Voeg Getter en Setter toe
Object.defineProperty()
De methode kan ook gebruikt worden om Getter en Setter toe te voegen:
Instantie
// Maak het object const person = {firstName:"Bill", lastName:"Gates"}; // Definieer de getter Object.defineProperty(person, "fullName", { get: function () {return this.firstName + " " + this.lastName;} });
Een tellerinstantie
// Definieer het object const obj = {counter:0}; // Definieer de setter Object.defineProperty(obj, "reset", { get : function () {this.counter = 0;} }); Object.defineProperty(obj, "increment", { get : function () {this.counter++;} }); Object.defineProperty(obj, "decrement", { get : function () {this.counter--;} }); Object.defineProperty(obj, "add", { set : function (value) {this.counter += value;} }); Object.defineProperty(obj, "subtract", { set : function (i) {this.counter -= i;} }); // Operation counter: obj.reset; obj.add = 5; obj.subtract = 1; obj.increment; obj.decrement;
- Vorige pagina JS object prototype
- Volgende pagina JS functie definitie