JavaScript Object.defineProperty()
- Baya na gaba defineProperties()
- Baya na kai tsaye entries()
- Tura zuwa babban JavaScript ɗanar bukatar ɗanar
定义和用法
Object.defineProperty()
方法用于添加或修改对象的属性。
Object.defineProperty()
方法允许你更改属性的元数据。
Object.defineProperty()
方法允许你添加 getter 和 setter。
相关方法:
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, enumerabla: 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; } });
Tsarin
Object.defineProperty(object, property, criptor)
mu'amala
mu'amala | Bayani |
---|---|
object | Dauka. Wani abin da ake ƙarfa. |
property | Dauka. Sunan abin da ake ƙarfa: |
criptor |
Dauka. Don haɗa ko wani yadda ake da yadda ake yin ƙarfin:
|
Kiyayya
Rajefu | Bayani |
---|---|
Object | Mutumman abin da aka yiwa hanyar |
Tsarin browsers
Object.defineProperty()
Yana da kiyayya ECMAScript5 (ES5).
Daga Shekara 2013, Yuli 7, duk browsers na yau suna kai tsaye a kai tsaye da ES5 (JavaScript 2009):
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 23 | IE/Edge 11 | Firefox 21 | Safari 6 | Opera 15 |
Shekara 2012, Satumba 9 | Shekara 2012, Satumba 9 | Shekara 2013, Yuni 4 | Shekara 2012, Yuli 7 | Shekara 2013, Yuli 7 |
- Baya na gaba defineProperties()
- Baya na kai tsaye entries()
- Tura zuwa babban JavaScript ɗanar bukatar ɗanar