1. 属性的简洁表示法:
ES6 允许在对象字面量中使用简洁的语法定义属性,不再需要重复书写相同的属性名和变量名:
let name = "John";
let age = 25;
// ES6 简洁表示法
const person = { name, age };
2. 方法的简洁表示法:
ES6 允许在对象字面量中使用简洁的语法定义方法:
// ES6 简洁表示法
const person = {
name: "John",
sayHello() {
console.log(`Hello, my name is ${this.name}.`);
}
};
3. 计算属性名:
ES6 允许在对象字面量中使用计算属性名,可以根据变量动态地生成属性名:
let prop = "age";
const person = {
name: "John",
[prop]: 25
};
4. Object.is() 方法:
Object.is() 方法用于比较两个值是否严格相等,类似于 ===,但处理一些特殊情况,例如 NaN 和 -0:
console.log(Object.is(NaN, NaN)); // true
console.log(Object.is(-0, 0)); // false
5. Object.assign() 方法:
Object.assign() 方法用于将一个或多个源对象的属性复制到目标对象,也可用于合并多个对象:
const target = { a: 1, b: 2 };
const source = { b: 3, c: 4 };
Object.assign(target, source);
console.log(target); // 输出:{ a: 1, b: 3, c: 4 }
6. Object.keys()、Object.values() 和 Object.entries() 方法:
这些方法分别用于获取对象的键、值和键值对:
const person = { name: "John", age: 25 };
console.log(Object.keys(person)); // 输出:['name', 'age']
console.log(Object.values(person)); // 输出:['John', 25]
console.log(Object.entries(person)); // 输出:[['name', 'John'], ['age', 25]]
7. Object.setPrototypeOf() 方法:
Object.setPrototypeOf() 方法用于设置对象的原型(prototype):
const cat = { meow() { console.log("Meow!"); } };
const kitten = { purr() { console.log("Purr!"); } };
Object.setPrototypeOf(kitten, cat);
kitten.meow(); // 输出:Meow!
这些 ES6 对象的扩展方法使得在处理对象时更为灵活和便捷。
转载请注明出处:http://www.zyzy.cn/article/detail/4670/ES6