Η μέθοδος Object.seal () JavaScript σφραγίζει το δεδομένο αντικείμενο.
Η seal()
μέθοδος αποτρέπει την προσθήκη νέων ιδιοτήτων στο αντικείμενο και επισημαίνει όλες τις υπάρχουσες ιδιότητες ως μη διαμορφώσιμες.
Η σύνταξη της seal()
μεθόδου είναι:
Object.seal(obj)
Η seal()
μέθοδος, ως στατική μέθοδος, καλείται χρησιμοποιώντας το Object
όνομα κλάσης.
σφραγίδα () Παράμετροι
Η seal()
μέθοδος περιλαμβάνει:
- obj - Το αντικείμενο που πρόκειται να σφραγιστεί.
Τιμή επιστροφής από σφραγίδα ()
- Επιστρέφει το αντικείμενο που σφραγίζεται.
Παράδειγμα: Χρήση σφραγίδας ()
let obj = ( foo: "bar", func: function () (), ); // before sealing, properties can be added, modified, or removed obj.foo = "JavaScript"; obj.value = 5; delete obj.func; // sealing the object o = Object.seal(obj); // can still change property values obj.foo = "bar1"; // no other change // fails silently obj.foo1 = "bar"; delete obj.foo; console.log(obj); // ( foo: 'bar1', value: 5 ) // cannot convert data property to accessors or vice versa Object.defineProperty(obj, "foo", ( get: function () ( return "g"; ), )); // TypeError Cannot redefine property: foo
Παραγωγή
(foo: 'bar1', value: 5) TypeError Δεν είναι δυνατή η επαναπροσδιορισμός της ιδιότητας: foo
Σημειώσεις :
- Από προεπιλογή, τα αντικείμενα είναι επεκτάσιμα (μπορούν να προστεθούν νέες ιδιότητες σε αυτά). Η σφράγιση αντικειμένων καθιστά ιδιότητες σε αντικείμενα σταθερά και αμετάβλητα. Οι τιμές των τρεχουσών ιδιοτήτων μπορούν ακόμα να αλλάξουν αρκεί να είναι εγγράψιμες.
Object.isSealed()
μπορεί να χρησιμοποιηθεί για να ελέγξει εάν ένα αντικείμενο είναι σφραγισμένο ή όχι.- Η προσπάθεια μετατροπής της ιδιότητας δεδομένων σε βοηθητικό ή αντίστροφα θα αποτύχει σιωπηλά ή θα ρίξει
TypeError
.
Προτεινόμενη ανάγνωση: Το αντικείμενο JavaScript είναι σφραγισμένο ()