Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट में वस्तु के संशोधन को कैसे रोकें?

<घंटा/>

ECMAScript 5 ने ऑब्जेक्ट के संशोधन को रोकने के लिए कई तरीके पेश किए हैं। वे निवारक उपाय यह सुनिश्चित करते हैं कि कोई भी, गलती से या अन्यथा वस्तु की कार्यक्षमता को बदल न दे।

निवारक विधियों के 3 स्तर हैं

1) एक्सटेंशन रोकें

इस स्तर पर, कोई भी नई संपत्ति या विधियों को नहीं जोड़ सकता है, लेकिन मौजूदा गुणों या विधियों तक पहुंच प्राप्त कर सकता है। यहां संबंधित वस्तु को हटाने की क्षमता है। Object.preventExtensions() इस कार्य को पूरा करने के लिए उपयोग की जाने वाली विधि है। यह किसी भी नए गुण को कभी भी वस्तु में जोड़े जाने से रोकता है।

उदाहरण

<html>
<body>
<script>
   var object1 = {
      prop1: 1
   };
   Object.preventExtensions(object1);
   delete object1.prop1 // value got deleted
   try {
      Object.defineProperty(object1, 'prop2', {
      value: 2
   });
   } catch (err) {
   document.write(err);
   }
   document.write("</br>");
   document.write(object1.prop1);
</script>
</body>
</html>

आउटपुट

TypeError: Cannot define property prop2, object is not extensible
undefined // deleted so undefined

2) सील

यह एक्सटेंशन को रोकने के समान है, इसके अतिरिक्त यह मौजूदा गुणों या विधियों को हटाने की अनुमति नहीं देता है। इस कार्य को पूरा करने के लिए Object.seal() विधि का उपयोग किया जाता है।

उदाहरण

<html>
<body>
<script>
   var object1 = {
      prop1: 1
   };
   Object.seal(object1);
   object1.prop1 = 2;                 // value got changed
   delete object1.prop1;
   try {
      Object.defineProperty(object1, 'prop2', {
      value: 2
   });
   } catch (err) {
      document.write(err);
   }
   document.write("</br>");
   document.write(object1.prop1); // it gives value as 2 because of seal.
</script>
</body>
</html>

आउटपुट

TypeError: Cannot define property prop2, object is not extensible
2  // because of seal the value can't be deleated but got updated

3) फ़्रीज़ करें

सील की कार्यक्षमता के अलावा, फ्रीज मौजूदा संपत्तियों तक पहुंचने की भी अनुमति नहीं देता है। किसी वस्तु को स्थिर करने के लिए हम उपयोग करते हैं Object.freeze() तरीका। यह किसी वस्तु को अपरिवर्तनीय भी बना सकता है ।

उदाहरण

<html>
<body>
<script>
   var object1 = {
      prop1: 1
   };
   Object.freeze(object1);
   object1.prop1 = 2;          //  value got updated
   delete object1.prop1;        // value got deleted
   try {
      Object.defineProperty(object1, 'prop2', {
      value: 2
   });
   } catch (err) {
      document.write(err);
   }
   document.write("</br>");
   document.write(object1.prop1);  // it gives 1 as output despite value updated to 2
</script>
</body>
</html>

आउटपुट

TypeError: Cannot define property prop2, object is not extensible
1 // because of freeze the value won't get delete and won't get update. 

  1. स्ट्रिंग को जावास्क्रिप्ट ऑब्जेक्ट में कैसे बदलें?

    एक स्ट्रिंग को JavaScript ऑब्जेक्ट में बदलने के लिए निम्नलिखित कोड है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>

  1. जावास्क्रिप्ट में आयातित ऑब्जेक्ट को डी-स्ट्रक्चर कैसे करें?

    जावास्क्रिप्ट में एक आयातित वस्तु को डी-स्ट्रक्चर करने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <

  1. एक बहुआयामी जावास्क्रिप्ट ऑब्जेक्ट कैसे बनाएं?

    एक बहुआयामी जावास्क्रिप्ट ऑब्जेक्ट बनाने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Docu