Пример кода на JS:
func_1 = function()
{
var start = {};
start.type = 1;
func_2(start);
};
func_2 = function( start )
{
var end = start;
end.type = end.type + 1;
console.log(start);
};
func_1();
console.log выдаёт: Object {type: 2}
По моей логике должно быть Object {type: 1}. В функции func_2 данные меняются же в новой созданной переменной, а не в аргументе. Такое поведение мне кажется логичным только если var end = start ведёт себя, как ссылка.
Подскажите, пожалуйста, почему так происходит?