ES6——对象
对象的简洁语法
下面这段代码中注释部分是老写法,注意,新写法内部使用箭头函数的话,箭头函数的this指向的是window,最好不要使用箭头函数。
let age=18;
let name='yangyi';
let json={
age,//age:age,
name,//name:name,
// show:function(){
// console.log(this.age,this.name)
// }
show(){
console.log(this.age,this.name)
}
}
json.show();
Object.assign() 用来合并参数、 复制对象
let 新对象=Object.assign(目标对象,source1,source2,....);
let json1={a:1}; let json2={b:2}; let json3={c:3};
let jsons=Object.assign({ },json1,json2,json3);
console.log(jsons);//{a: 1, b: 2, c: 3}
let json1={a:1}; let json2={b:2,a:0}; //前后相同时,后面的覆盖前面的 let json3={c:3};
let jsons=Object.assign({},json1,json2,json3);
console.log(jsons);//{a: 0, b: 2, c: 3}
function ajax(options){//用户传来的
let defaults={...}//默认的
let json=Object.assign({},defaults,options);
}
let arr=['qq','ccc','ggg'];
let arr2=Object.assign([],arr);
console.log(arr2);//["qq", "ccc", "ggg"]
arr2.push('uuu');
console.log(arr2);//["qq", "ccc", "ggg", "uuu"]
console.log(arr);//["qq", "ccc", "ggg"]
Object.keys()、Object.values()、Object.entries()循环对象
let json={ a:123, b:456, c:789 }
for(let key of Object.keys(json)){
console.log(key);//a b c
}
for(let value of Object.values(json)){
console.log(value);// 123 456 789
}
for(let item of Object.entries(json)){
console.log(item);// ["a", 123] ["b", 456] ["c", 789]
}
for(let [key,val] of Object.entries(json)){
console.log(key,val);//a 123 b 456 c 789
}
或者
let {keys,values,entries}=Object;
let json={ a:123, b:456, c:789 };
for(let key of keys(json)){
console.log(key);//a b c
}
ES2018中,“...”运算符也可以用在对象上了
let {x,y}={x:1,y:2,a:3,b:4};
console.log(x,y);//1 2
let {x,y,...c}={x:1,y:2,a:3,b:4};
console.log(x,y,c);//1 2 {a: 3, b: 4}
let json={a:3,b:4};
let json2={...json};
console.log(json2);//复制对象