10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

参照の値渡しとか呼ぶのを辞めたい

Last updated at Posted at 2014-10-16

何度も話されている話だけど。

JavaScriptはオブジェクトについて参照渡しだなんて、信じない - Qiita

個人的にこの挙動への理解を無駄に混乱させて参照の値渡しとかやたら周りくどい呼ばれ方をするのは、値渡しという考え方を元にしている為、もっと踏み込んでいえば変数=箱のイメージが邪魔をしている為と思ってる。

変数=箱では変数が主体であって、値はある変数の所有物であるという印象がある。けどJavascript等では実際には変数自身は値(オブジェクト)の利用権しか主張しない。逆に言えばオブジェクトの存在は特定の変数に縛られない。逆にオブジェクトが主体であって変数は従属するものと考えたほうが良いのかも。

ということで変数=箱的であるC/C++での代入演算とは=の意味合いが違っている。動的確保+ポインタによる参照に確かに似ているがそういった理解の仕方は概念の抽象度を無駄に下げていると思う。個人的には変数=オブジェクトに貼るラベルという認識を持っている。

でも参照の値渡しに代わる良い呼び名が無いのが現状で、共有渡しという呼び方もあるらしいが余り広まっているようには感じないのが悲しい。

結論:共有渡し広まれ

10
8
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?