JavaScript Object Accessors In Hindi

📔 : Java Script 🔗

JavaScript में accessors properties होती हैं , जो कि as a Object Method की तरह work करती है। जिनका use किसी value को set / get करने के लिए किया जाता है। value set करने के लिए set keyword का use किया जाता है और value get करने के लिए get keyword का use किया जाता है।


JavaScript में accessors को ECMAScript 5 (2009) में introduce किया गया था।

JavaScript Accessors Example

File : js_accessors.html

CopyFullscreenClose FullscreenRun
<!DOCTYPE html>
<html>
  <meta charset="utf-8">
  <body>
    <script>
      var person = {
        full_name : null,
        /*define setter to set name*/
        set set_name(name)
        {
          this.full_name = name;
        },

        /*define getter to get name*/
        get get_name()
        {
          return this.full_name;
        }
      };

      /*
      * now call setter to set name
      * you can also use like this person['set_name']
      */
      person.set_name = 'Rahul Kumar'; 

      /*now call setter to get name*/
      document.write(person.get_name);
    </script>
  </body>
</html>
Output
Rahul Kumar

Accessors को आप normal Object Property की तरह ही dot operator का use ( Object.getter / Object.setter ) करके या brackets का use करके ( Object['getter'] / Object['setter'] ) access कर सकते हैं। और setter में value set करने के लिए simply new value assign करते हैं। जैसा कि आप Example में आप देख सकते हैं , कि accessors को किस तरह से define और access करते हैं।

? जब हम किसी Object के लिए accessors define करते हैं तो , getter method के लिए Object में same name की एक property add हो जाती है , जिसकी value getter method के return value पर depend करती है। Object को console में print कराकर इसे आप आसानी से देख सकते हैं।

Difference Between Object Method And Getter , Setter

  1. हालाँकि accessorsdefine करने की जगह आप Object के लिए methods भी define कर सकते हैं फिर Accessors ही क्यों ? . जैसा कि आपने ऊपर पढ़ा कि accessors भी methods होते हैं लेकिन इन्हे access करने के लिए हमें parenthesis () का use नहीं करा पड़ता है। जबकि methods को access करने के लिए हमें parenthesis () mandatory है।

  2. Accessors की help से JavaScript data quality को ज्यादा secure कर सकती है , क्योंकि methods को access करते समय अगर गलती से parenthesis () का use नहीं किया तो हमें complete method definition मिल जाती है।

JavaScript Deleting Accessors From Object

normal property की तरह ही आप easily Accessors को delete operator के through delete कर सकते हैं।

delete Object.setter;
delete Object.getter;

or

delete Object['setter'];
delete Object['getter'];

JavaScript Add Accessors In To Object

हालाँकि आप accessors को normal Object Property की तरह access तो कर सकते हैं , लेकिन Object define करने के बाद normal property की तरह add नहीं कर सकते हैं। क्योंकि normal property की तरह add करने पर वो as a property ही add होगी न कि accessor.


Object में new accessor add करने के लिए आपको predefined Object method defineProperty() का use करना पड़ेगा।
Example :

File : js_accessors.html

CopyFullscreenClose FullscreenRun
<!DOCTYPE html>
<html>
  <meta charset="utf-8">
  <body>
    <script>
      var person = {full_name : null};

      /*add setter to set name*/
      Object.defineProperty(person, 'set_name', {
        set : function(name){
           this.full_name = name;
        }
      });

      /*add getter to get name*/
      Object.defineProperty(person, 'get_name', {
        get : function(){
         return this.full_name;
        }
      });
      
      person.set_name = 'Rahul Kumar';
      document.write(person.get_name);
    </script>
  </body>
</html>
Output
Rahul Kumar

JavaScript Accessors Advantage

  1. simple syntax.
  2. easy to work with Objects.
  3. properties & methods दोनों के लिए same structure.
  4. better data quality.
  5. easy to understand.

Related Topics :

Rahul Kumar

Rahul Kumar

Hi ! My name is Rahul Kumar Rajput. I'm a back end web developer and founder of learnhindituts.com. I live in Uttar Pradesh (UP), India and I love to talk about programming as well as writing technical tutorials and tips that can help to others.

Get connected with me. :) LinkedIn Twitter Instagram Facebook

b2eprogrammers