ES6对象的扩展:对象属性的简洁表示法、属性名表达式、扩展运算符(...)
一、对象的扩展
1.对象属性的简洁表示法
ES6可以在对象的大括号中,直接写入变量 和函数,作为对象的属性和方法。如果属性名与变量名相同,则可以简写,只写属性名即可。
var name = "赫本";
var obj = {name};
console.log(obj);//{name:赫本}
//相当于
var name = "赫本";
var obj = {name:name}
console.log(obj);//{name:赫本}
function fn(a,b){
return {a,b};
}
var obj = fn("hello","word");
console.log(obj);// {a: "hello", b: "word"}
1.1 方法的简写
在对象中,可以对方法进行简写。
let obj = {
fn(){
console.log("今晚九点,海岛集合。");//今晚九点,海岛集合。
}
}
//相等于
let obj = {
fn:function(){
console.log("今晚九点,海岛集合。");//今晚九点,海岛集合。
}
}
【注】简写只适用于普通方法,构造函数不能简写。
2.属性名表达式
let obj = {
name: "费雯丽",
age: "20"
}
console.log(obj.name);//费雯丽 (方式一)
console.log(obj["name"]);//费雯丽 (方式二)
let obj2 = {
name: "费雯丽",
["ag" + "e"]: "20"; //ES6属性名写法可以用该方法:中括号,字符串拼接方式
}
console.log(obj2);//{name: "费雯丽", age: "20"}
3.扩展运算符(…)
拆分的功能,如果是对象,则将对象中的所有属性遍历出来,如果是数组,则将所有的元素遍历出来。
let a = {x:1,y:2}
let b = {...a}
console.log(b);//{x: 1, y: 2}
let arr = [10,20,30];
let c = {...arr}
console.log(c); // {0: 10, 1: 20, 2: 30}
console.log(c["0"]); //10