在Javascript中获取和设置值

时间:2018-09-20 01:39:31

标签: javascript

我试图获取和设置地图的值,就像JavaScript中的对象一样。我成功地做到了。我仍然怀疑这是否是正确的解决方法,还是我的代码会在任何时间中断?

    m = new Map();
    Map {}
    > m.set('a', 1) //set value
    Map { 'a' => 1 }
    > m.get('a') //get it
    1
    > m['b'] = 2 //try using more convenient [] notation
    2
    > m['b'] //it works!
    2

尽管这对于此特定方案或其他方案都适用,但是否存在使用m ['b']获取地图会失败的方案?

1 个答案:

答案 0 :(得分:1)

它们不一样。当您使用方括号符号(或点符号)而不是.set.get时,您将Map用作普通对象,而不是Map。例如,如果您之后尝试使用b访问m.get,它将无法正常工作,因为b不是地图中的,而是< em> m对象的属性:

const m = new Map();
m.set('a', 1) //set value
m['b'] = 2 //try using more convenient [] notation
m['b'] //it works!
console.log(m.get('b')) // ...or not

可以像这样使用Map作为对象,并获取/设置任意属性,而不是.get.set方法,但是它将令人困惑。最好在适当的情况下使用普通对象,或者将Map.get.set方法一起使用-但不要混合使用两种语法。