提示コードですが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
別言語のことは忘れてから取り組んでください。
あと過去質問や、調べても何も出ない内容ではないので、調べてください。
また目的や背景なしに応えられないこともあります。
そもそも値渡し参照渡しに対してそれなりに深い理解してないと扱えないのでは。一歩間違えると相当荒れます。
そもそも言語として使わない方向性なのでしょうか?
人の話聞かないなら質問するなと何度言ったら
聞いています。
こちらのコメントに対して一切返さず自分の主張だけしている人に「この人は話聞いてるな」と感じる神経は私にはありません。
> 値渡しではなく参照渡し
JavaScriptには値渡しも参照渡しも存在しません。
> C言語の変数のような使い方
どういうことですか?
これをもし説明できなかったら、そもそもC言語の方も理解していないことになってしまいますが。
(むしろC言語でのそれが理解できているなら、JSでの挙動も理解できるかと思いますが)
とかく、何度も複数の方からご指摘ある通り、
基礎からやってください。
あと、
https://developer.mozilla.org/ja/docs/Learn/JavaScript/Objects/Object-oriented_JS
の内容は全く踏襲されていないかと・・・。
また、
https://kojimanotech.com/2020/05/01/213/
の内容と、同じようなことをされようとしていますが、
質問の構文はより階層が深いため、記事の通りにはいかないでしょうね。
その、参考記事の構文と、自身の構文の何が違うのか、をしっかり把握されるところから始めるとよいかと。
一様調べたことなので載せたのですが
個人的にJavaScriptの参照渡し/値渡し有無云々の解説記事の中で1番しっくり来た記事
貼っておきます。(これ宣伝になりかねないな)
https://qiita.com/yuta0801/items/f8690a6e129c594de5fb
値渡し/参照渡しとか考えている以前に正しい日本語使いません?
「一様」と「一応」なんて意味全然違いますし、
毎度毎度質問文に誤字脱字衍字あるし。
> 一様調べたことなので載せたのですが
それはわかります。
その上で、上記の私のコメントのような現状ではないかと思う、って話です。
とかく、複数の方から何度も指摘があるように、
もっと、基礎から極めるくらい学ばれることをお勧めします。
オブジェクトの参照に関しては、saijou_chanさんにはまだ早いようにお見受けします。
高階層のオブジェクトの参照は、基本の、オブジェクトと変数の参照を理解しなければ、
回答を受けても、理解はできないものとなります。
(参照を理解すれば、JSには参照渡しは存在しない、ということも理解できます)
K_3578さん >
私も、この記事とコメントを見て、自身の参照に関しての勘違いを改めた記憶があります。
(きっかけはteratailにて指摘を受けて調査、でした)
大変参考になる記事だと思います。
他人に説明できるくらいにならないと解決としてはいけません。
過去何百の質問から見るに、どれも理解してないけどまあいっか程度で締めてるのは明白です。
こんな質問しておいてまともなやり取りしないまま、現時点でベストアンサーとされた回答内容で理解できてるわけがない。
できてたらこんな質問してない。
この意味がわかりますか?
回答1件
あなたの回答
tips
プレビュー