メイン コーダーズルーム【スクリプト系】 「値による代入」と「参照による代入」について | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
onsk72 | Åê¹ÆNo.12628 投稿日時: 2004-11-24 16:06 |
新米 居住地: 投稿: 4
使用環境:
|
「値による代入」と「参照による代入」について オブジェクトや配列の「値による代入」をしたいのですが、代入演算子「=」で代入すると、
「参照による代入」になってしまいますよね? ----------------------------------------------------------- var obj1:Object = new Object(); obj1.test = "あいうえお"; var obj2:Object = obj1; obj2.test = "かきくけこ"; trace("obj1.test = " + obj1.test); //出力:obj1.test= かきくけこ trace("obj2.test = " + obj2.test); //出力:obj2.test= かきくけこ ----------------------------------------------------------- 新しくオブジェクトや配列を定義して、中身を1つずつ代入すれば参照ではなくなるのですが、 もっと簡単な方法はないのでしょうか? |
taka72 | Åê¹ÆNo.12631 投稿日時: 2004-11-24 16:41 |
常連 居住地: 埼玉 投稿: 61
使用環境:
|
Re: 「値による代入」と「参照による代入」について こんにちわ
代入演算子などの使い方がわかってらっしゃるようなんですが、もうちょっと具体的に何をしたいのか教えてもらえませんか? obj2を定義するのであれば、新しいObjectを作れば良いだけですし、変数を使いまわしたいのであればループ処理内で定義したりすれば問題は特段見当たらないのですが・・・ JavaっていうかOOP的には変数の使いまわしは避けようってのもありますしね。 |
onsk72 | Åê¹ÆNo.12634 投稿日時: 2004-11-24 17:28 |
新米 居住地: 投稿: 4
使用環境:
|
Re: 「値による代入」と「参照による代入」について 引用:
代入演算子などの使い方がわかってらっしゃるようなんですが、もうちょっと具体的に何をしたいのか教えてもらえませんか? 使い回しをするわけではありません。 Stringなどの代入と同じように、中身をコピーして使いたいだけなのです。 (元のデータはそのままで、コピーしたデータのみを変更したい) おっしゃるとおり、ループ処理で1つずつコピーすれば、何の問題もありません。 が、もっと簡単な方法がないかと思いまして、投稿させていただきました。 |
taka72 | Åê¹ÆNo.12638 投稿日時: 2004-11-24 18:05 |
常連 居住地: 埼玉 投稿: 61
使用環境:
|
Re: 「値による代入」と「参照による代入」について 結局はインスタンスを作成することになると思うんですけどねぇ。。
ちなみに自分だったらこんな感じで処理しますね。
|
ike_chan | Åê¹ÆNo.12639 投稿日時: 2004-11-24 18:17 |
新米 居住地: 大阪 投稿: 14
使用環境:
|
Re: 「値による代入」と「参照による代入」について 元になる配列を変えずに、
複製されたものだけを変えたいのであれば、 newArray = theArray.concat(); という手もあります。 例えば、 メインタイムラインに外部txtなんかから読み込んだ値を配列に代入して、 forループの中でattachMovieしたmcに渡して、 それぞれのmcで別の処理をさせたい時なんかに私はよく使いますが、 そういうお話ではないんでしょうか? でしたら、ゴメンナサイ。。 |
onsk72 | Åê¹ÆNo.12641 投稿日時: 2004-11-24 18:45 |
新米 居住地: 投稿: 4
使用環境:
|
Re: 「値による代入」と「参照による代入」について 引用:
そういう手がありました! ありがとうございます。 くだらない質問で、失礼しました。 |
taka72 | Åê¹ÆNo.12643 投稿日時: 2004-11-24 19:01 |
常連 居住地: 埼玉 投稿: 61
使用環境:
|
Re: 「値による代入」と「参照による代入」について そういえば私も文字列をsplit()なんかで再配置したりよくしてました。。。
すぐ思いつかなかった |
youich | Åê¹ÆNo.12758 投稿日時: 2004-11-27 0:13 |
職人 居住地: kobe 投稿: 349
使用環境:
|
Re: 「値による代入」と「参照による代入」について 引用:
mx.utilsにObjectCopyというクラスがありました。 var dstObject = mx.utils.ObjectCopy.copy(srcObject); という使い方のようです。 しかしObjectCopyのソースを見ていただくと解りますが インスタンスレベルで定義されたfunctionはコピーされません。 またArrayのArrayはシャロウーコピーになります。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |