Я довольно новичок в программировании и изучении JavaScript и пытается понять имена объектов и свойств. В следующем примере (от https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors) на уроке указано, что этот код (ниже) выводит «значение», поскольку оба foo и bar преобразуются в одну и ту же строку. Я понимаю, что свойство должно быть строкой и что число будет автоматически вводиться как строка, но я не понимаю, почему и foo, и bar разрешают «значение». Мне кажется, что последняя строка кода должна быть «2», так как var bar = 2. Что мне не хватает? Спасибо!Confused by property property output
var foo = {unique_prop: 1}, bar = {unique_prop: 2}, object = {};
object[foo] = 'value';
console.log(object[bar]);
Ключ не может быть объектом. Что происходит, так это то, что объект будет стягиваться, и вы получите '{'[Object Object]': 'value'}' – elclanrs
@elclanrs: ну, объекты _can_ будут ключами, как мы видим выше, но это не то, что нужно потому что все объекты данных будут выдавать один и тот же ключ. – dandavis
вы можете захотеть 'object [foo.unique_prop]' – dandavis