revision:
The Object.isSealed() static method determines if an object is sealed.
Object.isSealed(obj)
Parameters:
obj : required. The object which should be checked.
: optional. .
const object1 = { property1: 42 }; console.log(Object.isSealed(object1)); // Expected output: false Object.seal(object1); console.log(Object.isSealed(object1)); // Expected output: true
<div> <p id="seal-1"></p> <p id="seal-2"></p> <p id="seal-3"></p> <p id="seal-4"></p> <p id="seal-5"></p> <p id="seal-6"></p> <p id="seal-7"></p> <p id="seal-8"></p> <p id="seal-9"></p> </div> <script> // Objects aren't sealed by default. const empty = {}; Object.isSealed(empty); // false document.getElementById("seal-1").innerHTML = "is sealed ? : " + Object.isSealed(empty); // If you make an empty object non-extensible, it is vacuously sealed. Object.preventExtensions(empty); Object.isSealed(empty); // true document.getElementById("seal-2").innerHTML = "is sealed ? : " + Object.isSealed(empty); // The same is not true of a non-empty object, unless its properties are all non-configurable. const hasProp = { fee: "fie foe fum" }; Object.preventExtensions(hasProp); Object.isSealed(hasProp); // false document.getElementById("seal-3").innerHTML = "is sealed ? : " + Object.isSealed(hasProp); // But make them all non-configurable and the object becomes sealed. Object.defineProperty(hasProp, "fee", { configurable: false, }); Object.isSealed(hasProp); // true document.getElementById("seal-4").innerHTML = "is sealed ? : " + Object.isSealed(hasProp); // The easiest way to seal an object, of course, is Object.seal. const sealed = {}; Object.seal(sealed); Object.isSealed(sealed); // true document.getElementById("seal-5").innerHTML = "is sealed ? : " + Object.isSealed(sealed); // A sealed object is, by definition, non-extensible. Object.isExtensible(sealed); // false document.getElementById("seal-6").innerHTML = "is sealed object extensible? : " + Object.isExtensible(sealed); // A sealed object might be frozen, but it doesn't have to be. Object.isFrozen(sealed); // true // (all properties also non-writable) document.getElementById("seal-7").innerHTML = "is sealed object frozen? : " + Object.isFrozen(sealed); const s2 = Object.seal({ p: 3 }); Object.isFrozen(s2); // false // ('p' is still writable) document.getElementById("seal-8").innerHTML = "is sealed object frozen? : " + Object.isFrozen(s2); const s3 = Object.seal({ get p() { return 0; }, }); Object.isFrozen(s3); // true // (only configurability matters for accessor properties) document.getElementById("seal-9").innerHTML = "is sealed object frozen? : " + Object.isFrozen(s3); </script>
<div> <p id="seal-10"></p> <p id="seal-11"></p> <p id="seal-12"></p> </div> <script> // creating an object constructor and assigning values to it const object = { property: 'hi ninjasforninjas' }; // checking whether the object is sealed or not console.log(Object.isSealed(object)); document.getElementById("seal-10").innerHTML = "is object sealed? : " + Object.isSealed(object); // Using seal() method to seal the object Object.seal(object); // checking whether the object is frozen or not console.log(Object.isSealed(object)); document.getElementById("seal-11").innerHTML = "is object sealed? : " + Object.isSealed(object); </script>