Разница между назначением метода объекта ES6: a, 'a' и ['a']?

С ES6 я могу создать новый объект с функциями, подобными следующим:

var obj = {
    something() {}
};

В этом есть смысл. Но я также могу сделать это:

var obj = {
    'something'() {}
};

Или я могу сделать это:

var obj = {
    ['something']() {}
};

Есть ли разница между этими тремя синтаксисами? Почему все это синтаксически допустимо?

Ответы на вопрос(2)

Ваш ответ на вопрос