JavaScript Object.defineProperty()
- အရှေ့ပိုင်း စာရင်း defineProperties()
- နောက်ပိုင်း စာရင်း entries()
- အဆင်းမြင့်သို့ ပြန်ခွဲ JavaScript အမှုပြုအဖွဲ့ လက်တွေ
ဒါန်းတို့ နှင့် အသုံးပြုခြင်း
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, enumerable: true, configurable: true }); // 枚举属性 let txt = ""; for (let x in person) { txt += person[x] + "
"; } // သတင်းထူးခြား ပြသခြင်း 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] + "
"; } 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
ဒီ အမှတ် 6 မှာ getter ကို ဖြင့် firstName နှင့် lastName ကို ချိတ်ဆက်တော်
// ဒီ အားလုံး အချက်အလက် ကို ဖွဲ့စည်းတော် const person = { firstName: "Bill", lastName: "Gates" }; // ဒီ အင်တာဗက် ကို ဒေါ်ခေါ်တော် Object.defineProperty(person, "fullName", { get: function () { return this.firstName + " " + this.lastName; } });
အမှတ် 7
JavaScript မှာ Getter နှင့် Setter သည် စကော့တန်းအမှတ်ကို ဖွဲ့စည်းရန် အလွန်အချိန်သတ်စေသည်:
// ဒီ အင်တာဗက် ကို ဒေါ်ခေါ်တော် 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, property, descriptor)
ပါဝင်သော အခွင့်အရေး
ပါဝင်သော အခွင့်အရေး | ဖော်ပြ |
---|---|
object | အပြစ်အမှုးကြောင်း၊ အခွင့်အရေး ပိုင်ဆိုင်မှုရှိသော အရာ |
property | အပြစ်အမှုးကြောင်း၊ အခွင့်အရေး အမည် |
descriptor |
အပြစ်အမှုးကြောင်း၊ အသုံးပြုရန် ပါဝင်သော အခွင့်အရေး ကို ပြင်ဆင်ပြီး အသုံးပြုရသည်။
|
အပြန်အစား
အမျိုးအစား | ဖော်ပြ |
---|---|
Object | ပြင်ဆင်ပြီး အရာများ |
ဘာသာပြန် ကူးကြောင်း
Object.defineProperty()
ECMAScript5 (ES5) ရဲ့ အခြေအနေများ ဖြစ်သည်。
2013 ခုနှစ် ဧပြီလ ကတည်းက အဆိုပါ လူ့အသုံး ဘာသာပြန် အားလုံး သည် ES5 (JavaScript 2009) ကို အကောင်အထည်ဖော် ခဲ့သည့် အခြေအနေများကို အကောင်အထည်ဖော်သည်။
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 23 | IE/Edge 11 | Firefox 21 | Safari 6 | Opera 15 |
2012 ခုနှစ် စက်တင်ဘာလ | 2012 ခုနှစ် စက်တင်ဘာလ | 2013 ခုနှစ် ဇွန်လ | 2012 ခုနှစ် ဧပြီလ | 2013 ခုနှစ် ဧပြီလ |
- အရှေ့ပိုင်း စာရင်း defineProperties()
- နောက်ပိုင်း စာရင်း entries()
- အဆင်းမြင့်သို့ ပြန်ခွဲ JavaScript အမှုပြုအဖွဲ့ လက်တွေ