जावास्क्रिप्ट Object.defineProperty()

परिभाषा और उपयोग

Object.defineProperty() विधि ऑब्जेक्ट की विशेषताओं को जोड़ने या संशोधित करने के लिए प्रयोग की जाती है。

Object.defineProperty() विधि विशेषता के मेटाडाटा को बदलने की अनुमति देती है。

Object.defineProperty() विधि गेटर और सेटर जोड़ने की अनुमति देती है。

संबंधित विधियाँ:

Object.defineProperty() विशेषताओं को जोड़े या संशोधित करें。

Object.defineProperties() अनेक विशेषताओं को जोड़े या संशोधित करें。

Object.getOwnPropertyNames() ऑब्जेक्ट की सभी विशेषताओं का नाम वापस करता है。

Object.getOwnPropertyDescriptor() विशेषता का वर्णन वापस करता है。

Object.getOwnPropertyDescriptors() ऑब्जेक्ट की सभी विशेषताओं का वर्णन वापस करता है。

उदाहरण

उदाहरण 1

विशेषता जोड़ना:

// एक ऑब्जेक्ट बनाना
const person = {
  firstName: "Bill",
  lastName: "Gates"
  language: "EN"
};
// एक नई विशेषता जोड़ें
Object.defineProperty(person, "year", {value:"2008"});

खुद को प्रयास करें

उदाहरण 2

विशेषता संशोधन:

// एक ऑब्जेक्ट बनाना
const person = {
  firstName: "Bill",
  lastName: "Gates"
  language: "EN"
};
// एक गुण को संशोधित करना
Object.defineProperty(person, "language", {value:"NO"});

खुद को प्रयास करें

उदाहरण 3

// एक ऑब्जेक्ट बनाना
const person = {
  firstName: "Bill",
  lastName: "Gates"
  language: "NO"
};
// एक गुण को संशोधित करना
Object.defineProperty(person, "language", {
  value: "EN"
  writable: true,
  enumerable: true,
  configurable: true
});
// गुणों का सूचीबद्ध करना
let txt = "";
for (let x in person) {
  txt += person[x] + "<br>";
}
// विशेषता दिखाएं
document.getElementById("demo").innerHTML = txt;

खुद को प्रयास करें

उदाहरण 4

अगला उदाहरण पिछले उदाहरण के समान है, लेकिन language विशेषता को छुपा दिया है, ताकि इसे गणना नहीं किया जा सके:

// एक ऑब्जेक्ट बनाना
const person = {
  firstName: "Bill",
  lastName: "Gates"
  language: "NO"
};
// एक गुण को संशोधित करना
Object.defineProperty(person, "language", {
  value: "EN"
  writable: true,
  enumerable: false,
  configurable: true
});
// गुणों का सूचीबद्ध करना
let txt = "";
for (let x in person) {
  txt += person[x] + "<br>";
}
document.getElementById("demo").innerHTML = txt;

खुद को प्रयास करें

उदाहरण 5

इस उदाहरण में setter और getter का निर्माण किया गया है, ताकि language गुण के अद्यतन को बड़े बनाया जा सके:

// एक ऑब्जेक्ट बनाना
const person = {
  firstName: "Bill",
  lastName: "Gates"
  language: "NO"
};
// एक गुण को संशोधित करना
Object.defineProperty(person, "language", {
  get: function() { return language },
  set: function(value) { language = value.toUpperCase() }
});
// language को संशोधित करना
person.language = "en";
// language दिखाना
document.getElementById("demo").innerHTML = person.language;

खुद को प्रयास करें

उदाहरण 6

इस उदाहरण में getter का उपयोग किया गया है ताकि firstName और lastName को जोड़ा जा सके:

// एक ऑब्जेक्ट बनाना
const person = {
  firstName: "Bill",
  lastName: "Gates"
};
// एक गेटर डिफाइन करना
Object.defineProperty(person, "fullName", {
  get: function () { return this.firstName + " " + this.lastName; }
});

खुद को प्रयास करें

उदाहरण 7

जेसक्रिप्ट के गेटर और सेटर गणना बनाने के लिए बहुत उपयोगी हैं:

// डिफाइन करने वाले सेटर और गेटर
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; }
});

खुद को प्रयास करें

व्याकरण

Object.defineProperty(ऑब्जैक्ट, अनुभाग, वर्णन)

पारामीटर

पारामीटर वर्णन
ऑब्जैक्ट आवश्यक। लक्ष्य ऑब्जैक्ट
अनुभाग आवश्यक। अनुभाग नाम
वर्णन

आवश्यक। जोड़ने या संशोधित करने के लिए अनुभाग के वर्णनः

  • value: value
  • writable : true|false
  • enumerable : true|false
  • configurable : true|false
  • get : function
  • set : function

वापसी मान

टाइप वर्णन
Object संशोधित ऑब्जैक्ट

ब्राउज़र समर्थन

Object.defineProperty() यह ECMAScript5 (ES5) की विशेषता है।

2013 वर्ष 7 से, सभी आधुनिक ब्राउज़र एस5 (JavaScript 2009) का पूर्ण समर्थन करते हैं:

Chrome Edge Firefox Safari Opera
Chrome 23 IE/Edge 11 Firefox 21 Safari 6 Opera 15
2012 वर्ष 9 अक्टूबर 2012 वर्ष 9 अक्टूबर 2013 वर्ष 4 अप्रैल 2012 वर्ष 7 जुलाई 2013 वर्ष 7 जुलाई