質問: JavaScriptの参照に関する記事でよく、オブジェクトは共有渡しで、プリミティブ値は値渡しと書かれていますが、仕様書をみても当該の記述を見つけられません。 仕様書を読む限り区別がない、つまり全てが値渡しの様に見えてしまいます。 もしくはReference型にbaseとして格納されているのは値を構成するデータ配列ではなく、値の存在そのもの、つまり参照(ポインタ)に近い概念であって、結局実は全部が共有渡しということなのでしょうか? 例えばProperty Accessorsの仕様で 「Return a value of type Reference whose base value is bv」 というのは、作成されるReferenceのbaseにbvそのものを格納する→bvをデータとして複製して格納ではなく、その存在そのものを格納→実際は参照(ポインタ)に当たるものが格納されるイメージ、というニュアンスなのでしょうか?
回答: 引数の動作については、JavaScript が実装している ECMAScript の仕様書がある程度参考になるかと思います。 以下の様な箇所で触れられています。 * * * * ECMA263-3 の第八章内にある「ECMAScript での実装」にも書かれている通り、全ては共有渡し(Call by sharing)です。 質問で @JSer さんがおっしゃっているとおりの理解で間違いないかと思います。