ဂျက်တ်စ် ES5 အမှုံ့
- အရှေ့ JS အပေါင်း
- နောက်ပိုင်း JS အပြောင်းအလဲ
အက်မ်မာစ်စစ် ၅ (၂၀၀၉) သတင်းပြင်းများကို ဂျာပ်ရေးသားလိုက်သည်。
အရာသတ် အပိုင်းအခြာ
// အရာသတ် အပိုင်းအခြာ ပြုလုပ် Object.create() // အရာသတ် ပြင်ဆင် သို့မဟုတ် ထပ်ထည့် Object.defineProperty(object, property, descriptor) // အရာသတ် ပြင်ဆင် သို့မဟုတ် ထပ်ထည့် Object.defineProperties(object, descriptors) // အရာသတ် ကို ခေါ်ခြင်း Object.getOwnPropertyDescriptor(object, property) // အရာသတ် ဖွဲ့စည်း အဖွဲ့ ပြန်လည် Object.getOwnPropertyNames(object) // အရာသတ် ပုံစံ ကို ခေါ်ခြင်း Object.getPrototypeOf(object) // အရာသတ် ဖွဲ့စည်း အဖွဲ့ ပြန်လည် Object.keys(object)
အရာသတ် ကာကွယ်
// အရာသတ် အပိုင်းအခြာ အသုံးပြု Object.preventExtensions(object) // အရာသတ် အပိုင်းအခြာ အသုံးပြုနိုင်တဲ့က အသံထွက် Object.isExtensible(object) // အရာသတ် အပိုင်းအခြာ ပိတ်ပင် Object.seal(object) // အရာသတ် အပိုင်းအခြာ ပိတ်ပင်တဲ့က အသံထွက် Object.isSealed(object) // အရာသတ် အပိုင်းအခြာ ပိတ်ပင် Object.freeze(object) // အရာသတ် အပိုင်းအခြာ ပိတ်ပင်တဲ့က အသံထွက် Object.isFrozen(object)
အရာသတ် အရာသတ်
ပုံစံ
Object.defineProperty(object, property, {value : value})
အက်ယ်လက်စတာ
အမှတ်အသား ပြင်ဆင် အမှတ်အသား
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; // အရာသတ် ပြင်ဆင် Object.defineProperty(person, "language", {value : "NO"});
အမှတ်အသား ပြင်ဆင်
ES5 က အရာသတ် အမှတ်အသား ပြင်ဆင်နိုင်
writable : true // အရာသတ် အရာသတ် ပြင်ဆင်နိုင် enumerable : true // အရာသတ် ဖွဲ့စည်းနိုင် configurable : true // အရာသတ် ပြန်လည်ပြင်ဆင်နိုင်
writable : false // အရာသတ်သည် ပြင်ဆင်မပါ enumerable : false // ဖွဲ့စည်းမှုမပါဘဲ configurable : false // အရာများ ကို အပြင်းအထန် ပြင်ဆင်ခြင်း မပြုနိုင်
ES5 က getter နှင့် setter ကို ပြောင်းလဲနိုင်ပါ
// ဒေါင်းကြောင်း ကို သတ်မှတ်ပါ get: function() { return language } // ဒေါင်းကြောင်း ကို သတ်မှတ်ပါ set: function(value) { language = value }
အမှတ်အသား တစ်ခု ကို language ကို သာမန် ဖြစ်ပါ
Object.defineProperty(person, "language", {writable:false});
အမှတ်အသား တစ်ခု ကို language ကို အယူအယျင် ဖြစ်ပါ
Object.defineProperty(person, "language", {enumerable:false});
အရာများ အားလုံး ကို ပြောကြားပါ
အမှတ်အသား တစ်ခု ကို အရာများ အားလုံး ကို ပြောကြားပါ
အက်ယ်လက်စတာ
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; Object.defineProperty(person, "language", {enumerable:false}); Object.getOwnPropertyNames(person); // အရာများ သတ်မှတ်ပါ
အယူအယျင် အရာများ ကို ပြောကြားပါ
အမှတ်အသား တစ်ခု ကို အယူအယျင် အရာများ ကို သာ ပြောကြားပါ
အက်ယ်လက်စတာ
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; Object.defineProperty(person, "language", {enumerable:false}); Object.keys(person); // အယူအယျင် အရာများ သတ်မှတ်ပါ
ထပ်ပေါင်းအရာ
အမှတ်အသား တစ်ခု ကို အရာများ သို့ ထပ်ပေါင်းပါ
အက်ယ်လက်စတာ
// အရာများ ကို ဖန်တီးပါ const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; // အရာများ ကို ထပ်ပေါင်းပါ Object.defineProperty(person, "year", {value:"2008"});
ဒေါင်းကြောင်း နှင့် ဒေါင်းကြောင်း ကို ထပ်ပေါင်းပါ
Object.defineProperty()
ဒေါင်းကြောင်း နှင့် ဒေါင်းကြောင်း ကို ထပ်ပေါင်းပါ
အက်ယ်လက်စတာ
// အရာများ ကို ဖန်တီးပါ const person = {firstName:"Bill", lastName:"Gates"}; // ဒေါင်းကြောင်း ကို သတ်မှတ်ပါ Object.defineProperty(person, "fullName", { get: function () {return this.firstName + " " + this.lastName;} });
အစစ်အရေးသူ အက်ယ်လက်စတာ
// အရာများ ကို သတ်မှတ်ပါ const obj = {counter:0}; // ဒေါင်းကြောင်း ကို သတ်မှတ်ပါ 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 (i) {this.counter -= i;} }); // အစီအစဉ်အမှတ် obj.reset; obj.add = 5; obj.subtract = 1; obj.increment; obj.decrement;
- အရှေ့ JS အပေါင်း
- နောက်ပိုင်း JS အပြောင်းအလဲ