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

क्या जावास्क्रिप्ट में Object.freeze() का उपयोग करके नेस्टेड ऑब्जेक्ट को अपरिवर्तनीय बनाना संभव है?


Object.freeze() विधि किसी वस्तु को अपरिवर्तनीय बना सकती है लेकिन नेस्टेड ऑब्जेक्ट . के मामले में , यह परिवर्तनशीलता . को नहीं रोक सकता . ऑब्जेक्ट फ्रीज () केवल अपरिवर्तनीयता . प्रदान कर सकता है बाहरी मूल वस्तु के लिए, यह किसी भी आंतरिक बच्चे (नेस्टेड) ​​वस्तुओं तक नहीं पहुंच सकता है।

उदाहरण

निम्नलिखित उदाहरण में, कोई नेस्टेड ऑब्जेक्ट नहीं हैं। ऑब्जेक्ट.फ्रीज () विधि फ्रीज . करने का प्रयास करेगी पूरी वस्तु। इसलिए वस्तु को जमने के बाद भी गुण "नाम" में कोई परिवर्तन नहीं होता है।

<html>
<body>
   <script>
      const person = {
         "name" : "Suresh",
         "Country" : "India",
         "Designation" : "Mayor"
      }
      document.write("Before freeze the name is" +" "+ person.name );
      document.write("</br>");
      Object.freeze(person);
      person.name = "John";
      document.write("After freeze the name is" +" "+ person.name);
   </script>
</body>
</html>

आउटपुट

Before freeze the name is Suresh
After freeze the name is Suresh

जब किसी नेस्टेड वस्तु को जमे हुए . करने का प्रयास किया जाता है ऑब्जेक्ट.फ्रीज () . द्वारा परिणाम व्यर्थ है क्योंकि Object.freeze() नेस्टेड वस्तुओं तक नहीं पहुंच सकता।

उदाहरण

निम्नलिखित उदाहरण में, भले ही वस्तु जमे हुए . है द्वारा Object.freeze() विधि नेस्टेड ऑब्जेक्ट की संपत्ति बदल जाती है।

<html>
<body>
<script>
   const person = {
      "name" : "Suresh",
      "Country" : "India",
      "Designation" : "Mayor",
      "CompaniesOwned" :{
         "Company1" : "Tesla",
         "Company2" : "SolarCity",
         "Company3" : "Spacex"
      }
   }
   document.write("Before freeze " + " " + "Company2 is" + " "+ person.CompaniesOwned.Company2);
   Object.freeze(person);
   document.write("</br>");
   person.CompaniesOwned.Company2 = "Neuralica";
   document.write("After freeze" + " " + "Company2 is" + " "+ person.CompaniesOwned.Company2);
</script>
</body>
</html>

आउटपुट

Before freeze Company2 is SolarCity
After freeze Company2 is Neuralica

  1. जावास्क्रिप्ट का उपयोग करके URL ऑब्जेक्ट कैसे बनाएं?

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

  1. जावास्क्रिप्ट का उपयोग करके ऐरे में नेस्टेड ऑब्जेक्ट मानों का योग

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

  1. जावास्क्रिप्ट में नेस्टेड जावास्क्रिप्ट ऑब्जेक्ट कुंजी के अस्तित्व के लिए परीक्षण

    मान लीजिए, हमारे पास किसी वस्तु का संदर्भ है - लेट टेस्ट ={}; इस ऑब्जेक्ट में संभावित रूप से (लेकिन तुरंत नहीं) नेस्टेड ऑब्जेक्ट होंगे, जैसे - टेस्ट ={लेवल1:{लेवल2:{लेवल3:लेवल3}}}; हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता होती है जो पहले तर्क के रूप में ऐसी किसी एक वस्तु को लेता है और उसके