我们来看这么一个场景
js
function createUser(userId,userPwd){
return {
userId:userId,
userPwd:userPwd
}
}这个函数用于创建一个用户对象,但是这样其实不方便,我们看,在新对象中,属性值对应的变量名正好是它的属性名。
在 ES 6 中,我们可以像下面这样写:
js
function createUser(userId,userPwd){
return {
userId,
userPwd
}
}也就是说,如果我们的属性值来自于一个变量,并且这个变量的名字和属性名重复了,就可以只写一个属性名即可。
接下来再看一个场景
js
const obj = {
print:function(){
console.log("123");
}
}如果我们要在对象里面添加一个函数,我们就要写这么大一坨,一旦方法多了,写的重复代码就会越多,在 ES 6 中提供了一种方式来简写
js
const obj = {
print(){
console.log("123");
}
}这种写法和上面的一样,相当于省略了 :function ,也是没有任何问题的。
除此之外,我们发现,有的属性名可能来自于某些表达式的值,我们可以使用中括号来表达该属性名是通过计算得到的
js
const a = "te";
const b = "st";
const obj = {
[a+b]:"测试",//加上中括号后,中括号里面填入一个表达式,这个表达式的值,就会变成属性名(转为字符串)
}
console.log(obj.test);//正确输出