为什么这不给我我期望的对象..它是{1:2}而是控制台提供了{a:2}

问题描述

这为什么不给我我期望的对象..它是{1:2}而是控制台给出了{a:2}

function createObject (a,b) {
    const myObject = {a:b}
    console.log(myObject);
}

createObject(1,2);

解决方法

不带括号,文字对象的属性名称不作为表达式求值:

function createObject (a,b) {
    const myObject = {[a]: b}
    console.log(myObject);
}

createObject(1,2);