Object.assign(ออบเจ็กต์ที่จะรับพรอเพอร์ตี, ออบเจ็กต์ที่จะให้พรอเพอร์ตี, ...)
let suanSiri = { mamuang: 30, taengmo: 20 };
let suanSutrit = { lamyai: 15 };
let suanSanchai = { som: 45, kluai: 300 };
Object.assign(suanSiri, suanSutrit, suanSanchai);
// suanSiri กลายเป็น { mamuang: 30, taengmo: 20, lamyai: 15, som: 45, kluai: 300 };
let suanKitti = { kaeomangkon: 5, lamut: 35 };
let suanPiti = { thurian: 15, sapparot: 30};
let suanMai = Object.assign({}, suanKitti, suanPiti);
// ได้ suanMai เป็น { kaeomangkon: 5, lamut: 35, thurian: 15, sapparot: 30 }
let n = Object.assign(111, {x: 2});
alert(n); // ได้ 111
alert(typeof n); // ได้ object
alert(n.x); // ได้ 2
let n = 112;
alert(n === Object.assign(n, { x: 7 })); // ได้ false
let obj = {};
alert(obj === Object.assign(obj, { x: 7 })); // ได้ true
let raiA = {khao: 20, thua: 30};
let raiB = Object.assign({}, raiA);
alert(raiA===raiB); // ได้ false (เพราะถือเป็นคนละออบเจ็กต์กัน)
alert(raiB.khao); // ได้ 20
alert(raiB.thua); // ได้ 30
let Sanphon = {
suanSom: {som: 200}
};
let Kamphon = Object.assign({}, Sanphon);
alert(Kamphon === Sanphon); // ได้ false (เป็นออบเจ็กต์คนละตัวกัน)
alert(Kamphon.suanSom === Sanphon.suanSom); // ได้ true (เป็นออบเจ็กต์ตัวเดียวกัน)
alert(Object.is("ผงขาว", "แป้ง")); // ได้ false
alert(Object.is('แป้ง', "แป้ง")); // ได้ true
alert(Object.is({}, {})); // ได้ false
alert(+0 === -0); // ได้ true
alert(Object.is(+0, -0)); // ได้ false
alert(NaN === NaN); // ได้ false
alert(Object.is(NaN, NaN)); // ได้ true
Object.setPrototypeOf(ออบเจ็กต์, ออบเจ็กต์ที่จะเป็นโพรโทไทป์)
let mot = {kha: 6};
let motDam = { si: "#000" };
Object.setPrototypeOf(motDam, mot);
mot.pik = 4;
alert(Object.getPrototypeOf(motDam)===mot);
alert(motDam.kha); // ได้ 6
alert(motDam.si); // ได้ #000
alert(motDam.pik); // ได้ 4
mot.kha = 5;
alert(motDam.kha); // ได้ 5
let maeo = { kha: 4, hang: 1 };
let maeoDam = Object.setPrototypeOf({}, maeo);
alert(Object.getPrototypeOf(maeoDam) === maeo); // ได้ true
alert(maeoDam.kha); // ได้ 4
const TAMAYA = Symbol();
const KAGIYA = Symbol();
let hanabi = {
[TAMAYA]: "ทามายะ",
[KAGIYA]: "คางิยะ"
};
alert(TAMAYA in hanabi); // ได้ true
alert(KAGIYA in hanabi); // ได้ true
let prosy = Object.getOwnPropertySymbols(hanabi);
alert(prosy.map(s => typeof s)); // ได้ symbol,symbol
alert(prosy.map(s => hanabi[s])); // ได้ ทามายะ,คางิยะ
alert(TAMAYA == prosy[0]); // ได้ true
alert(KAGIYA == prosy[1]); // ได้ true
const ATK = Symbol();
let puenyai = { nak: 2000 };
Object.defineProperties(puenyai, {
yao: {
value: 5,
writable: false,
enumerable: true
},
[ATK]: {
value: 999,
configurable: true
}
});
let prodes = Object.getOwnPropertyDescriptors(puenyai);
alert(prodes[ATK].value); // ได้ 999
alert(prodes.yao.value); // ได้ 5
alert(prodes.nak.value); // ได้ 2000
alert(prodes.yao.writable); // ได้ false
alert(prodes[ATK].configurable); // ได้ true
alert(prodes.yao.enumerable); // ได้ true
let hanayamata = {
naru: 150,
hana: 144,
yaya: 158,
tami: 155,
machi: 163
};
alert(Object.keys(hanayamata)); // ได้ naru,hana,yaya,tami,machi
alert(Object.values(hanayamata)); // ได้ 150,144,158,155,163
let ent = Object.entries(hanayamata);
alert(ent.length); // ได้ 5
alert(ent[0]); // ได้ naru,150
alert(ent[1]); // ได้ hana,144
alert(ent[2]); // ได้ yaya,158
alert(ent[3]); // ได้ tami,155
let ent = [
["hinako", 160],
["mayuki", 139],
["kuina", 155],
["chiaki", 169],
["yua", 158],
];
let hinakonote = Object.fromEntries(ent);
alert(hinakonote.yua); // ได้ 158
alert(Object.keys(hinakonote)); // ได้ hinako,mayuki,kuina,chiaki,yua
alert(Object.values(hinakonote)); // ได้ 160,139,155,169,158
ชื่อฟังก์ชัน | ความสามารถ | เพิ่มมาใน |
---|---|---|
Object.assign | แจกพรอเพอร์ตีจากออบเจ็กต์อื่นให้ออบเจ็กต์ตัวหนึ่ง | ES2015 |
Object.is | เทียบว่าออบเจ็กต์หรือตัวแปร ๒ ตัวมีค่าเท่ากันหรือเปล่า | |
Object.setPrototypeOf | ตั้งโพรโทไทป์ให้ออบเจ็กต์ | |
Object.getOwnPropertySymbols | แสดงพรอเพอร์ตีที่ใช้คีย์เป็นซิมโบลทั้งหมด | |
Object.getOwnPropertyDescriptors | แสดงพรอเพอร์ตีทั้งหมด | ES2017 |
Object.values | แสดงค่าทั้งหมดของพรอเพอร์ตีในออบเจ็กต์ | |
Object.entries | แสดงคีย์ทั้งหมดของพรอเพอร์ตีในออบเจ็กต์ | |
Object.fromEntries | แสดงคีย์และค่าทั้งหมดของพรอเพอร์ตีในออบเจ็กต์ | ES2019 |
ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ