Сообщение от Zeroglif
|
Можете включать голосовалку, я за by-value... ;-)
|
Не-а, я не участвую ;-) Единственное, на что могу согласиться, это поменять местами приоритеты - сначала говорить, что в ES используют терминологию by-value, но вообще, не касаемо реализаций и языков, это называется by-sharing (даже если! даже, если - by-sharing и не часто используется в быту; меня всегда больше теория интересует).
Сообщение от Zeroglif
|
by-ref в отношении объектов. Это даже в доках было. Eсли ты видел на vingrad-e на меня с моим by-value смотрели как на марсианина
|
Ну by-reference не верно, в любом случае, так что, на vingrad-e ты был прав.
Сообщение от Zeroglif
|
конкретизация переменных
|
Это, в смысле, ты имеешь в виду [[Get]]? Или, наоборот, только разрешение имени?
С другой стороны, технически, тогда обычное присвоение тоже создаёт
копию ссылки и ничем не отличает от передачи в качестве параметра функции:
var a = {x: 10};
var b = a;
aRef = {baseObject: Global, propertyName: "a"}; // address: 0xFF
bRef = {baseObject: Global, propertyName: "b"}; // address: 0xFF (скопировался)
var a = {x: 20};
aRef = {baseObject: Global, propertyName: "a"}; // address: 0xFА (новый)
bRef = {baseObject: Global, propertyName: "b"}; // address: 0xFF (старый)
Вот в этом отношении говорить о
значении (скопированном value адреса, ссылки) - да, конечно, правильно. И, повторю, тогда вообще нет разницы от присваивания и передачи в функции в качестве формального параметра (или есть, как думаешь?).
Но, теоретическая
evaluation strategy - остаётся
by-sharing, как
специально выделенная и обособленная от by-value и by-reference и именно по этому критерию.