質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

541閲覧

[JavaScript入門者] オブジェクトを値渡しする方法が知りたい

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

1グッド

0クリップ

投稿2021/04/28 05:36

提示コードですがJavaScriptではオブジェクトの代入は値渡しではなく参照渡しになっています。値渡しするにはどうしたらいいのでしょか?
そもそも行為自体がおかしくてこの言語ではC言語の変数のような使い方はしないのでしょうか?

参考サイト1 : https://developer.mozilla.org/ja/docs/Learn/JavaScript/Objects/Object-oriented_JS
参考サイト2 : https://kojimanotech.com/2020/05/01/213/

js

1'use strict' 2 3 4 5//モデルの情報 6let model = 7{ 8 Translate: 9 { 10 x: 0, 11 y: 0, 12 z: -4, 13 }, 14 15 Rotate: 16 { 17 x: 0, 18 y: 0, 19 z: 0, 20 }, 21 22 Scale: 23 { 24 x: 1, 25 y: 1, 26 z: 1, 27 }, 28}; 29 30 31let m = Object.assign({},model); 32 33console.log(model.Translate.x); 34 35model.Translate.x = 10; 36 37console.log(m.Translate.x); 38
退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/04/28 05:42 編集

別言語のことは忘れてから取り組んでください。 あと過去質問や、調べても何も出ない内容ではないので、調べてください。 また目的や背景なしに応えられないこともあります。 そもそも値渡し参照渡しに対してそれなりに深い理解してないと扱えないのでは。一歩間違えると相当荒れます。
退会済みユーザー

退会済みユーザー

2021/04/28 05:43

そもそも言語として使わない方向性なのでしょうか?
m.ts10806

2021/04/28 05:46

人の話聞かないなら質問するなと何度言ったら
退会済みユーザー

退会済みユーザー

2021/04/28 05:53

聞いています。
m.ts10806

2021/04/28 06:02

こちらのコメントに対して一切返さず自分の主張だけしている人に「この人は話聞いてるな」と感じる神経は私にはありません。
miyabi_takatsuk

2021/04/28 06:19

> 値渡しではなく参照渡し JavaScriptには値渡しも参照渡しも存在しません。 > C言語の変数のような使い方 どういうことですか? これをもし説明できなかったら、そもそもC言語の方も理解していないことになってしまいますが。 (むしろC言語でのそれが理解できているなら、JSでの挙動も理解できるかと思いますが) とかく、何度も複数の方からご指摘ある通り、 基礎からやってください。
miyabi_takatsuk

2021/04/28 06:33

あと、 https://developer.mozilla.org/ja/docs/Learn/JavaScript/Objects/Object-oriented_JS の内容は全く踏襲されていないかと・・・。 また、 https://kojimanotech.com/2020/05/01/213/ の内容と、同じようなことをされようとしていますが、 質問の構文はより階層が深いため、記事の通りにはいかないでしょうね。 その、参考記事の構文と、自身の構文の何が違うのか、をしっかり把握されるところから始めるとよいかと。
退会済みユーザー

退会済みユーザー

2021/04/28 06:37

一様調べたことなので載せたのですが
K_3578

2021/04/28 06:44

値渡し/参照渡しとか考えている以前に正しい日本語使いません? 「一様」と「一応」なんて意味全然違いますし、 毎度毎度質問文に誤字脱字衍字あるし。
miyabi_takatsuk

2021/04/28 06:45 編集

> 一様調べたことなので載せたのですが それはわかります。 その上で、上記の私のコメントのような現状ではないかと思う、って話です。 とかく、複数の方から何度も指摘があるように、 もっと、基礎から極めるくらい学ばれることをお勧めします。 オブジェクトの参照に関しては、saijou_chanさんにはまだ早いようにお見受けします。 高階層のオブジェクトの参照は、基本の、オブジェクトと変数の参照を理解しなければ、 回答を受けても、理解はできないものとなります。 (参照を理解すれば、JSには参照渡しは存在しない、ということも理解できます)
miyabi_takatsuk

2021/04/28 06:50

K_3578さん > 私も、この記事とコメントを見て、自身の参照に関しての勘違いを改めた記憶があります。 (きっかけはteratailにて指摘を受けて調査、でした) 大変参考になる記事だと思います。
m.ts10806

2021/04/28 07:32

他人に説明できるくらいにならないと解決としてはいけません。 過去何百の質問から見るに、どれも理解してないけどまあいっか程度で締めてるのは明白です。 こんな質問しておいてまともなやり取りしないまま、現時点でベストアンサーとされた回答内容で理解できてるわけがない。 できてたらこんな質問してない。 この意味がわかりますか?
guest

回答1

0

ベストアンサー

ディープコピーするしかないと思います。
標準的な機能でオブジェクトをディープコピーすることはできないので、「JavaScript ディープコピー」でググるといいかと思います。


値渡し・参照渡しについては、この辺りが参考になるでしょう。

共有渡しとも。大抵の言語はオブジェクトを渡すときこの形態になる。

参照の値渡し | 値渡しと参照渡しと参照の値渡しと - Qiita

投稿2021/04/28 06:49

Lhankor_Mhy

総合スコア36960

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問