JavaScript 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"
};
// 定义一个 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(వస్తువు, ప్రాపర్టీ, డిస్క్రిప్టర్)

పరిమాణం

పరిమాణం వివరణ
వస్తువు అవసరమైనది. లక్ష్య వస్తువు.
ప్రాపర్టీ అవసరమైనది. వస్తువు పేరు.
డిస్క్రిప్టర్

అవసరమైనది. జోడించాలి లేదా సవరించాలి అనే వస్తువు వివరణను చేర్చండి:

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

తిరిగి వచ్చే విలువ

రకం వివరణ
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 నెల