Я видел приведенный ниже пример на этом сайте и думал, что оба ответа будут 20, а не 10, которые возвращаются. Он написал, что и запятая, и присваивание возвращает значение, а не ссылку. Я не совсем понимаю, что это значит.
Я понимаю это в отношении передачи переменных в функции или методы. При этом примитивные типы передаются по значению и объектам по ссылке, но я не уверен, как это применимо в этом случае.
Я также понимаю контекст и значение 'this' (после справки из stackoverflow), но я думал, что в обоих случаях я все равно буду ссылаться на него как на метод foo.bar(), который будет означать, что foo - это контекст, но Кажется, что оба они приводят к вызову функции().
Почему это и что все это значит?
var x = 10;
var foo = {
x: 20,
bar: function () {return this.x;}
};
(foo.bar = foo.bar)();//returns 10
(foo.bar, foo.bar)();//returns 10