JavaScript - isExtensible() method

revision:


Category : object

The Object.isExtensible() static method determines if an object is extensible (whether it can have new properties added to it).

Syntax :

        Object.isExtensible(obj)
    

Parameters:

obj : required. The object which should be checked.

Examples:

        const object1 = {};
        console.log(Object.isExtensible(object1));
        // Expected output: true
        Object.preventExtensions(object1);
        console.log(Object.isExtensible(object1));
        // Expected output: false

    

Practical examples

example: using the Object.isExtensible() method.

code:
                    <div>
                        <p id="ext-1"></p>
                        <p id="ext-2"></p>
                        <p id="ext-3"></p>
                        <p id="ext-4"></p>
                    </div>
                    <script>
                        // New objects are extensible.
                        const empty = {};
                        Object.isExtensible(empty); // true
                        document.getElementById("ext-1").innerHTML = "extensible ? : " + Object.isExtensible(empty);
                        // They can be made un-extensible
                        Object.preventExtensions(empty);
                        Object.isExtensible(empty); // false
                        document.getElementById("ext-2").innerHTML = "extensible ? : " + Object.isExtensible(empty);
                        // Sealed objects are by definition non-extensible.
                        const sealed = Object.seal({});
                        Object.isExtensible(sealed); // false
                        document.getElementById("ext-3").innerHTML = "extensible ? : " + Object.isExtensible(sealed);
                        // Frozen objects are also by definition non-extensible.
                        const frozen = Object.freeze({});
                        Object.isExtensible(frozen); // false
                        document.getElementById("ext-4").innerHTML = "extensible ? : " + Object.isExtensible(frozen);
                    </script>
                

example: check if new properties can be added to an object.

code:
                    <div>
                        <p id="ext-5"></p>
                        <p id="ext-6"></p>
                        <p id="ext-7"></p>
                    </div>
                    <script>
                        const ninjas1 = {};
                        console.log(Object.isExtensible(ninjas1));
                        document.getElementById("ext-5").innerHTML = "is extensible ? : " +  Object.isExtensible(ninjas1);
                        Object.preventExtensions(ninjas1);
                        console.log(Object.isExtensible(ninjas1));
                        document.getElementById("ext-6").innerHTML = "is extensible ? : " +  Object.isExtensible(ninjas1);
                                    
                        const ninjas2 = {};
                        Object.preventExtensions(ninjas2);
                        console.log(
                            Object.isExtensible(ninjas2)
                        );
                        document.getElementById("ext-7").innerHTML = "is extensible ? : " +  Object.isExtensible(ninjas2);
                    </script>
                

example: check if new properties can be added to an object or not.

code:
                    <div>
                        <p id="ext-8"></p>
                        <p id="ext-9"></p>
                        <p id="ext-10"></p>
                        <p id="ext-11"></p>
                        <p id="ext-12"></p>
                    </div>
                    <script>
                        let ninjas3 = {};
                        console.log(Object.isExtensible(ninjas3));
                        document.getElementById("ext-8").innerHTML = "is extensible ? : " +  Object.isExtensible(ninjas3);
                        console.log(Object.preventExtensions(ninjas3));
                        document.getElementById("ext-9").innerHTML = "prevent extensions : " +  Object.preventExtensions(ninjas3);
                        console.log(Object.isExtensible(ninjas3));
                        document.getElementById("ext-10").innerHTML = "is extensible ? : " +  Object.isExtensible(ninjas3)
                        let ninjas4 = Object.seal({});
                        console.log(Object.isExtensible(ninjas4));
                        document.getElementById("ext-11").innerHTML = "is extensible ? : " +  Object.isExtensible(ninjas4)
                        let ninjas5 = Object.freeze({});
                        console.log(Object.isExtensible(ninjas5));
                        document.getElementById("ext-12").innerHTML = "is extensible ? : " +  Object.isExtensible(ninjas5)
                    </script>