1】es6给Object扩展了许多新的方法,如
const person = { name: "qiyue", age: 23, language: ["java", "js", "css"] } console.log(Object.keys(person)) //["name","age","language"] console.log(Object.values(person)) // ["qiyue",23,Array(3)] console.log(Object.entries(person)) //[Array(2),Array(2),Array(2)]
2】Object.assign方法的第一个参数是目标对象,后面的参数都是源对象;将源对象的属性赋值到目标对象中
onst target = { a: 1 } const source1 = { b: 2 } const source2 = { c: 3 } Object.assign(target, source1, source2); console.log(target) //{a: 1, b: 2, c: 3}
3】声明对象简化
//以前 const name = 'sanyue' const age = 21 //将属性值name,age分别赋给person1对象的name,age,后面是属性值 const person1 = { name: name, age: age } console.log(person1) //{name: "sanyue", age: 21} //es6:属性名和属性值变量名一样,可以省略 const person2 = {name,age} console.log(person2) //{name: "sanyue", age: 21}
let person3 = { name: "qiyue", //以前 eat: function (food) { console.log(this.name + "在吃" + food); }, //箭头函数中this不能使用,用对象.属性 eat2: food => console.log(person3.name + "在吃" + food), eat3(food) { console.log(this.name + "在吃" + food) } } person3.eat("苹果") //qiyue在吃苹果 person3.eat2("香蕉") // qiyue在吃香蕉 person3.eat3("西瓜") //qiyue在吃西瓜
5】对象扩展运算符
//拷贝对象(深拷贝) let p1 = { name: "qiyue", age: 23 } let obj = { ...p1 } console.log(obj)//{name: "qiyue", age: 23} //合并对象 let age1 = { age: 24 } let name1 = { name: "qiyue" } let p2 = {} p2 = { ...age1, ...name1 } console.log(p2) //{age: 24, name: "qiyue"} //如果p2中原本有name,age属性会被覆盖
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。