Object.seal() और Object.freeze() के बीच अंतर यह है कि पूर्व ऑब्जेक्ट की मौजूदा प्रॉपर्टीज में परिवर्तन की अनुमति दे सकता है जबकि बाद वाला ऑब्जेक्ट में किसी भी परिवर्तन की अनुमति नहीं देगा। Object.freeze() ऑब्जेक्ट को किसी भी चीज़ के लिए इम्यून बना देता है, यहां तक कि मामूली परिवर्तन भी नहीं किए जा सकते।
Object.seal()
Object.seal() मेथड मौजूदा प्रॉपर्टी के विलोपन को रोकता है लेकिन यह मौजूदा प्रॉपर्टीज को बाहरी परिवर्तनों से नहीं बचा सकता।
उदाहरण
निम्नलिखित उदाहरण में, Object.seal() मेथड के कारण यूजर-डिफाइंड प्रॉपर्टी "prop1" डिलीट मेथड लागू होने के बावजूद डिलीट नहीं होती, जबकि केवल प्रॉपर्टी "prop1" का मान अपडेट होता है।
<html> <body> <script> var object1 = { prop1: 1 }; Object.seal(object1); object1.prop1 = 2; // मान बदल गया delete object1.prop1; document.write(object1.prop1); // यह सील के कारण मान 2 देता है। </script> </body> </html>
आउटपुट
2
Object.freeze()
Object.seal() की कार्यक्षमताओं के अलावा, Object.freeze() मेथड ऑब्जेक्ट की मौजूदा प्रॉपर्टीज में मामूली परिवर्तन की भी अनुमति नहीं देगा।
उदाहरण
<html> <body> <script> var object1 = { prop1: 1 }; Object.freeze(object1); object1.prop1 = 2; // मान अपडेट हुआ delete object1.prop1; // मान डिलीट हुआ document.write(object1.prop1); // यह मान 2 अपडेट होने के बावजूद 1 आउटपुट देता है </script> </body> </html>
आउटपुट
1