■吉里吉里/KAG/TJS雑談質問スレ■その17at GAMEDEV■吉里吉里/KAG/TJS雑談質問スレ■その17 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト75:名前は開発中のものです。 09/02/20 02:37:51 bB7tnOB/ よくわかんないけど、 hoge_back = hoge だったら参照してるだけでコピーじゃないよ。同じオブジェクトだよ。 そのへんじゃないの。 76:名前は開発中のものです。 09/02/20 02:41:40 ZJG6AjS+ >>74 変数名を配列に格納しておく 77:名前は開発中のものです。 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 のように、必要なメンバを全部コピーしなおす作業。 手間だがそれ以外の方法はない。全部書くべし。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch