var obj={
name:'zs'
}
var obj2={
name:'ls'
}
var obj3={
[obj1]:'11',
[obj2]:'22'
}
console.log(obj3)//{[object Object]:'22'}
只输出第二项是因为:对象的key默认为字符串,当传入的不是字符串时,会隐式调用toString方法转换成字符串,因此[obj1]和[obj2]都被转换成了‘[object Object]’,后面覆盖前面
所以对于对象来说:
key => value 就是
string => value
但我们如果就需要key不是string,那么可以用map
const fruitsColor = new Map().set('red',['apple']).set('yellow',['banana'])
function printFruits(color){
return fruitsColor.get(color) || []
}
map是es6的新特性