09/02/20 02:49:11 MGg1emBt
いろいろと根本的に間違えてるな
キーワードは「参照」。TJS の変数はオブジェクトはすべて参照扱いになる。
>>70
hoge_back <-> hoge
してたら入れ替わるのは当然の話
>>72
hoge_back = hoge;
これをやると、hoge_back は hoge と全く同じものを指すようになる。
hoge_back.aaa と hoge.aaa は物理的に同じものになって、
もともと hoge_back の中に入ってたものはゴミになる。
C言語のように中身を代入してくれるわけじゃない。
その中の関数の参照を var func = hoge_back.Test; といった形で
あらかじめ抜き出しておいた場合、その function 自体が元のオブジェクト(hoge_backだったもの)
の参照を this として保持したままになってるので、その中で aaa を参照すると、
もとの hoge_back.aaa だったものが参照される。だからその挙動で正しい。
やらないといけないことは
hoge_back.aaa = hoge.aaa
のように、必要なメンバを全部コピーしなおす作業。
手間だがそれ以外の方法はない。全部書くべし。