[Typescript] Objectの参照元の値を書き換える方法

image

やりたいこと

オブジェクトAを元にオブジェクトBを作成します。

オブジェクトBの値を書き換えると、オブジェクトAの値を書き換えるようにしたいです。

やりたいことの例

以下の例のようにHumanの値を元にStudentを作成し、Studentの値を書き換えた際にHumanの値も書き変わるようにしたい。

ちなみに上記の例で

🔳期待値

  • student.name:yoshida
  • human.name:yoshida

🔳実際

  • student.name:yoshida
  • human.name:tanaka

となります

期待値の動作をするようにコードを書き換える

期待通りの動作をするコードは以下の通りです

上記のコードのようにオブジェクトを参照渡しするようにかきかえると期待通りの動作をします。

動作の解説

TypeScriptには参照渡しと値渡しという考え方があります。

詳しくはサバイバルTypeScriptの記事を参照してください

基本的には下記の通りになります

  • 値渡し:プリミティブ型
  • 参照渡し:プリミティブ型以外

下記のコードではobjectの値を渡しているから参照渡しになるはずでは?と思うかもしれませんが、これはオブジェクトの要素のname(プリミティブ型)、age(プリミティブ型)を渡しているので値渡しになってしまいます。。

(私はここで少し躓きました、、、)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


error: Content is protected !!