Передача по значению
При передаче переменной в функцию переменная копируется. Любые изменения, которые вы вносите в переменную, не отражаются после вашего выхода.
Передача по ссылке :
При передаче переменной в функцию передается «указатель» на переменную. Любые изменения, внесенные в переменную, копируются.
В AS3 все передается по ссылке, , за исключением примитивов (Boolean, String, int, uint и т. Д.), Которые имеют специальные операторы за кулисами, чтобы заставить их действовать как обход значение. Поскольку xxx
- это строка, это то, что происходит. (Кроме того, строки являются неизменяемыми; вы не можете изменить их значение).
Как это исправить (как говорили другие):
- Передайте сам объект
Test
в функцию bar()
: bar( this );
- Инкапсулируйте параметр
xxx
в свой собственный объект и передайте следующее: bar( {prop:this.xxx} );
- Пусть
bar()
вернет значение и установит его: this.xxx = bar();