ES6對(duì)象擴(kuò)展是指在ES6中新增的一些對(duì)象屬性和方法,包括對(duì)象屬性的簡(jiǎn)寫、計(jì)算屬性名、對(duì)象方法的簡(jiǎn)寫、對(duì)象的可迭代性、拓展運(yùn)算符等。
下面是一些常用的ES6對(duì)象擴(kuò)展:
- 對(duì)象屬性的簡(jiǎn)寫
ES6中,當(dāng)對(duì)象的屬性名和賦值變量名相同時(shí),可以簡(jiǎn)寫屬性名稱,例如:
let name = 'Tom';
let age = 20;
let obj = {
name,
age
};
這里的name和age屬性名可以直接使用變量名來表示,不需要再寫屬性名和變量名。
- 計(jì)算屬性名
在ES6中,可以使用計(jì)算屬性名來動(dòng)態(tài)設(shè)置對(duì)象屬性名,例如:
let key = 'name';
let obj = {
[key]: 'Tom'
};
console.log(obj); // {name: "Tom"}
這里使用了方括號(hào)來表示計(jì)算屬性名,key的值會(huì)被動(dòng)態(tài)地賦給屬性名。
- 對(duì)象方法的簡(jiǎn)寫
在ES6中,定義對(duì)象方法時(shí)可以使用簡(jiǎn)寫語(yǔ)法,例如:
let obj = {
sayHello() {
console.log('Hello World!');
}
};
obj.sayHello(); // "Hello World!"
這里的sayHello方法與函數(shù)定義類似,不需要function關(guān)鍵字。
- 對(duì)象的可迭代性
在ES6中,對(duì)象可以通過定義Symbol.iterator屬性來實(shí)現(xiàn)可迭代性,例如:
let obj = {
name: 'Tom',
age: 20,
[Symbol.iterator]: function* () {
let keys = Object.keys(this);
for (let key of keys) {
yield [key, this[key]];
}
}
};
for (let [key, value] of obj) {
console.log(key + ": " + value);
}
這里使用了Symbol.iterator來定義一個(gè)迭代器,使對(duì)象可以進(jìn)行迭代操作。
- 拓展運(yùn)算符
在ES6中,可以使用拓展運(yùn)算符...來展開數(shù)組、對(duì)象等,例如:
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let arr3 = [...arr1, ...arr2];
console.log(arr3); // [1, 2, 3, 4, 5, 6]
let obj1 = {name: 'Tom'};
let obj2 = {age: 20};
let obj3 = {...obj1, ...obj2};
console.log(obj3); // {name: "Tom", age: 20}
這里使用了拓展運(yùn)算符...將多個(gè)數(shù)組或?qū)ο蠛喜⒌揭黄?/p>
????????ES6 在 Object 對(duì)象上新增了一些方法,包括:
-
Object.is(): 判斷兩個(gè)值是否完全相等,包括 NaN 和 +0/-0 的區(qū)別。
-
Object.assign(): 將源對(duì)象的屬性復(fù)制到目標(biāo)對(duì)象中,可以同時(shí)復(fù)制多個(gè)對(duì)象。
-
Object.keys(): 返回一個(gè)數(shù)組,包含目標(biāo)對(duì)象的所有可枚舉屬性的鍵名。
-
Object.values(): 返回一個(gè)數(shù)組,包含目標(biāo)對(duì)象的所有可枚舉屬性的鍵值。
-
Object.entries(): 返回一個(gè)數(shù)組,包含目標(biāo)對(duì)象的所有可枚舉屬性的鍵名和鍵值。
-
Object.getOwnPropertyDescriptors(): 返回一個(gè)對(duì)象,包含目標(biāo)對(duì)象所有屬性的描述對(duì)象。
-
Object.setPrototypeOf(): 設(shè)置一個(gè)對(duì)象的原型對(duì)象。
-
Object.getPrototypeOf(): 返回一個(gè)對(duì)象的原型對(duì)象。
-
Object.freeze(): 凍結(jié)一個(gè)對(duì)象,使其不可修改。文章來源:http://www.zghlxwxcb.cn/news/detail-734430.html
-
Object.seal(): 封閉一個(gè)對(duì)象,使其屬性不可新增、刪除,但屬性值可以修改。文章來源地址http://www.zghlxwxcb.cn/news/detail-734430.html
到了這里,關(guān)于ES6對(duì)象擴(kuò)展的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!