【JavaScript】配列とオブジェクトの値渡しをする方法

【JavaScript】配列とオブジェクトの値渡しをする方法

はじめに

コジマです。

JavaScriptで値渡しをする方法についてまとめます。

JavaScriptに参照渡し、値渡しの概念がないみたいな話も聞きますが、
ここではあえてこのような表現をいたします。
円周率は3.14だよという気持ちで見てください。

JavaScriptは参照渡し?

配列やオブジェクトを何の気なしに「=」で更新しようとすると参照渡しされてしまいます。

一時的にtmpに避けておきたいと思ったのに、

配列

参照渡しサンプル

コピー先が釣られて値変わるパターン

コピー元が釣られて値変わるパターン

値渡しサンプル

slice関数が使えます。
コピー元の配列から引数で与えた範囲を値渡しでコピーできます。

引数なしだと全範囲対象となるので、ここであ引数を与えずに丸コピします。

オブジェクト

参照渡しサンプル

コピー先が釣られて値変わるパターン

コピー元が釣られて値変わるパターン

値渡しサンプル

assign関数が使えます。
元の関数に対して引数で与えたオブジェクトを上書きしていく関数です。

コピー元のオブジェクトに空のオブジェクトを使用することで値渡しの
オブジェクトのコピーを作成できます。

さいごに

今回の話まとめます。

  • 配列やオブジェクトで「=」で代入すると意図しない動作するときあるよ
  • 配列の値渡しにはslice関数が使えるよ
  • オブジェクトの値渡しにはassign関数が使えるよ

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

以上、コジマでした。


javascriptカテゴリの最新記事