У меня есть следующий простой скрипт.Переменная обновляется «по ссылке»?
<script>
SPC = {
a : [10],
b : 10,
t: function()
{
y = this.a;
z = this.b;
y[0]++;
z++;
alert('this.a[0] = ' + this.a[0] + '\nthis.b = ' + this.b)
}
}
SPC.t();
SPC.t();
</script>
Запуск его в браузере будут отображаться два Уведомления коробки с:
this.a [0] = 11 this.b = 10
и
this.a [ 0] = 12 this.b = 10
Вопрос в том, почему значение this.a [0] увеличивается? Я назначаю «y = this.a» и обновляю элемент «y» как «y [0] ++;»?
В то же время точно так же происходит с «b»: «z = this.b; z ++». Тем не менее, «this.b» остается равным 10.
Как изменить значение «y [0]» в локальной области, не затрагивая «this.a»?
Любые идеи?
Спасибо!