JavaScript Object.defineProperty()
- Προηγούμενη Σελίδα defineProperties()
- Επόμενη Σελίδα entries()
- Επιστροφή στο Προηγούμενο Στρώμα Εγχειρίδιο Συνόλου Οντόντων JavaScript
Definition and usage
Object.defineProperty()
Method is used to add or modify properties of the object.
Object.defineProperty()
Method allows you to change the metadata of the property.
Object.defineProperty()
Method allows you to add getter and setter.
Related methods:
Object.defineProperty()
Add or modify properties.
Object.defineProperties()
Add or modify multiple properties.
Object.getOwnPropertyNames()
Returns all property names of the object.
Object.getOwnPropertyDescriptor()
Returns the descriptor of the property.
Object.getOwnPropertyDescriptors()
Returns the descriptors of all properties of the object.
Instance
Example 1
Add attribute:
// Δημιουργία ενός αντικειμένου const person = { firstName: "Bill", lastName: "Gates" language: "EN" }; // Add a new attribute Object.defineProperty(person, "year", {value:"2008"});
Example 2
Modify attribute:
// Δημιουργία ενός αντικειμένου const person = { firstName: "Bill", lastName: "Gates" language: "EN" }; // Αλλαγή μιας ιδιότητας Object.defineProperty(person, "language", {value:"NO"});
Example 3
// Δημιουργία ενός αντικειμένου const person = { firstName: "Bill", lastName: "Gates" language: "NO" }; // Αλλαγή μιας ιδιότητας Object.defineProperty(person, "language", { value: "EN" writable: true, enumerable: true, configurable: true }); // Καταγραφή ιδιοτήτων let txt = ""; for (let x in person) { txt += person[x] + "<br>"; } // Display attribute document.getElementById("demo").innerHTML = txt;
Example 4
The next example is the same as the previous example code, but the language attribute is hidden, making it non-enumerable:
// Δημιουργία ενός αντικειμένου const person = { firstName: "Bill", lastName: "Gates" language: "NO" }; // Αλλαγή μιας ιδιότητας Object.defineProperty(person, "language", { value: "EN" writable: true, enumerable: false, configurable: true }); // Καταγραφή ιδιοτήτων let txt = ""; for (let x in person) { txt += person[x] + "<br>"; } document.getElementById("demo").innerHTML = txt;
Παράδειγμα 5
Σε αυτό το παράδειγμα δημιουργείται ένας setter και ένας getter για να διασφαλιστεί ότι η ιδιότητα language ενημερώνεται σε κεφαλαία γράμματα:
// Δημιουργία ενός αντικειμένου const person = { firstName: "Bill", lastName: "Gates" language: "NO" }; // Αλλαγή μιας ιδιότητας Object.defineProperty(person, "language", { get: function() { return language }, set: function(value) { language = value.toUpperCase() } }); // Αλλαγή της μεταβλητής language person.language = "en"; // Εμφάνιση της μεταβλητής language document.getElementById("demo").innerHTML = person.language;
Παράδειγμα 6
Σε αυτό το παράδειγμα χρησιμοποιείται ο getter για να συνδυαστεί το firstName και το lastName:
// Δημιουργία ενός αντικειμένου const person = { firstName: "Bill", lastName: "Gates" }; // Ορισμός ενός Getter Object.defineProperty(person, "fullName", { get: function () { return this.firstName + " " + this.lastName; } });
Παράδειγμα 7
Οι Getter και Setter του JavaScript είναι πολύ κατάλληλοι για τη δημιουργία μετρητών:
// Ορισμός Setter και Getter 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 (value) { this.counter -= value; } });
Γλώσσα
Object.defineProperty(object, property, descriptor)
παράμετροι
παράμετροι | Περιγραφή |
---|---|
object | Απαιτείται. Το στόχος αντικείμενο. |
property | Απαιτείται. Το όνομα του χαρακτηριστικού. |
descriptor |
Απαιτείται. Προσθέστε ή τροποποιήστε την περιγραφή του χαρακτηριστικού του περιγραφικού δείκτη:
|
Αποτελεσματικότητα
Τύπος | Περιγραφή |
---|---|
Object | Αναθεωρημένος αντικείμενος. |
Υποστήριξη Πλοηγού
Object.defineProperty()
Είναι χαρακτηριστικά του ECMAScript5 (ES5).
Από τον Ιούλιο του 2013, όλες οι σύγχρονες πλοηγούς υποστηρίζουν πλήρως το ES5 (JavaScript 2009):
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 23 | IE/Edge 11 | Firefox 21 | Safari 6 | Opera 15 |
Σεπτέμβριος 2012 | Σεπτέμβριος 2012 | Απρίλιος 2013 | Ιούλιος 2012 | Ιούλιος 2013 |
- Προηγούμενη Σελίδα defineProperties()
- Επόμενη Σελίδα entries()
- Επιστροφή στο Προηγούμενο Στρώμα Εγχειρίδιο Συνόλου Οντόντων JavaScript