JavaScript Object.defineProperty()
- ముంది పేజీ defineProperties()
- తదుపరి పేజీ entries()
- పైకి తిరిగి వెళ్ళు JavaScript ఆబ్జెక్ట్ పరిచయం
నిర్వచనం మరియు ఉపయోగం
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" }; // 定义一个 Getter Object.defineProperty(person, "fullName", { get: function () { return this.firstName + " " + this.lastName; } });
例子 7
JavaScript 的 Getter 和 Setter 非常适合创建计数器:
// 定义 Setter 和 Getter 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(వస్తువు, ప్రాపర్టీ, డిస్క్రిప్టర్)
పరిమాణం
పరిమాణం | వివరణ |
---|---|
వస్తువు | అవసరమైనది. లక్ష్య వస్తువు. |
ప్రాపర్టీ | అవసరమైనది. వస్తువు పేరు. |
డిస్క్రిప్టర్ |
అవసరమైనది. జోడించాలి లేదా సవరించాలి అనే వస్తువు వివరణను చేర్చండి:
|
తిరిగి వచ్చే విలువ
రకం | వివరణ |
---|---|
Object | సవరించబడిన వస్తువు. |
బ్రౌజర్ మద్దతు
Object.defineProperty()
ECMAScript5 (ES5) యొక్క లక్షణాలు.
2013 సంవత్సరం 7 నెల నుండి, అన్ని ఆధునిక బ్రౌజర్లు పూర్తిగా ES5 (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 నెల |
- ముంది పేజీ defineProperties()
- తదుపరి పేజీ entries()
- పైకి తిరిగి వెళ్ళు JavaScript ఆబ్జెక్ట్ పరిచయం