जावास्क्रिप्ट ऑब्जेक्ट एक्सेसर्स
जावास्क्रिप्ट एक्सेसर्स (गेटर्स एंड सेटर्स)
ECMAScript 5 (ES5 2009) ने गेट्टर एंड सेटर्स की शुरुआत की।
गेटर्स और सेटर्स आपको ऑब्जेक्ट एक्सेसर्स (गणना गुण) को परिभाषित करने की अनुमति देते हैं।
जावास्क्रिप्ट गेट्टर (कीवर्ड प्राप्त करें)
यह उदाहरण संपत्ति
के मूल्य के लिए एक lang
संपत्ति का उपयोग करता है ।get
language
उदाहरण
// Create an object:
const person = {
firstName: "John",
lastName: "Doe",
language: "en",
get lang() {
return this.language;
}
};
// Display data from the object using a getter:
document.getElementById("demo").innerHTML = person.lang;
जावास्क्रिप्ट सेटर (सेट कीवर्ड)
यह उदाहरण संपत्ति
के मूल्य के लिए एक lang
संपत्ति का उपयोग करता है ।set
language
उदाहरण
const person = {
firstName: "John",
lastName: "Doe",
language: "",
set lang(lang) {
this.language = lang;
}
};
// Set an object
property using a setter:
person.lang = "en";
// Display data from the object:
document.getElementById("demo").innerHTML = person.language;
जावास्क्रिप्ट फ़ंक्शन या गेट्टर?
इन दो उदाहरणों में क्या अंतर है?
उदाहरण 1
const person = {
firstName: "John",
lastName: "Doe",
fullName: function() {
return this.firstName + " " +
this.lastName;
}
};
// Display data from the object using a method:
document.getElementById("demo").innerHTML = person.fullName();
उदाहरण 2
const person = {
firstName: "John",
lastName: "Doe",
get fullName() {
return this.firstName + " " +
this.lastName;
}
};
// Display data from the object using a getter:
document.getElementById("demo").innerHTML = person.fullName;
उदाहरण 1 एक फ़ंक्शन के रूप में पूर्ण नाम तक पहुंचें: person.fullName()।
उदाहरण 2 एक संपत्ति के रूप में पूर्ण नाम तक पहुंचें: person.fullName।
दूसरा उदाहरण एक सरल वाक्यविन्यास प्रदान करता है।
आँकड़े की गुणवत्ता
गेटर्स और सेटर्स का उपयोग करते समय जावास्क्रिप्ट बेहतर डेटा गुणवत्ता सुरक्षित कर सकता है।
इस उदाहरण में संपत्ति का उपयोग करते हुए , ऊपरी मामले में संपत्ति lang
का मूल्य लौटाता है :language
उदाहरण
// Create an object:
const person = {
firstName: "John",
lastName: "Doe",
language: "en",
get lang() {
return this.language.toUpperCase();
}
};
// Display data from the object using a getter:
document.getElementById("demo").innerHTML = person.lang;
संपत्ति का उपयोग करना lang
, इस उदाहरण में, संपत्ति में ऊपरी केस मान संग्रहीत करता language
है:
उदाहरण
const person = {
firstName: "John",
lastName: "Doe",
language: "",
set lang(lang) {
this.language = lang.toUpperCase();
}
};
// Set an object
property using a setter:
person.lang = "en";
// Display data from the object:
document.getElementById("demo").innerHTML = person.language;
गेटर्स और सेटर्स का उपयोग क्यों?
- यह सरल वाक्य रचना देता है
- यह गुणों और विधियों के लिए समान सिंटैक्स की अनुमति देता है
- यह बेहतर डेटा गुणवत्ता सुरक्षित कर सकता है
- यह पर्दे के पीछे की चीजों को करने के लिए उपयोगी है
Object.defineProperty ()
गेटर्स और सेटर्स को जोड़ने के Object.defineProperty()
लिए विधि का भी उपयोग किया जा सकता है:
एक काउंटर उदाहरण
// Define object
const obj = {counter : 0};
// Define setters
Object.defineProperty(obj, "reset", {
get : function () {this.counter = 0;}
});
Object.defineProperty(obj, "increment", {
get : function () {this.counter++;}
});
Object.defineProperty(obj, "decrement", {
get : function () {this.counter--;}
});
Object.defineProperty(obj, "add", {
set : function (value) {this.counter += value;}
});
Object.defineProperty(obj, "subtract", {
set : function (value) {this.counter -= value;}
});
// Play with the counter:
obj.reset;
obj.add = 5;
obj.subtract = 1;
obj.increment;
obj.decrement;