Skip to content

我们来看这么一个场景

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);//正确输出

以笔记为镜,可以知得失