2015-09-30 6 views
5

JavaScriptでは、偽の値を無視しないようにデフォルトのパラメータを設定するために、次のようなコードが表示されることがよくあります。余分な割り当てを持つJavascriptのデフォルトパラメータ

function SomeObject (param) { 
    this.param = param || {}; 
} 

時折しかし、コードを読むとき、私は次の変動に遭遇します:

function SomeObject (param) { 
    this.param = param = param || {}; 
} 

誰かが私には、このためのユースケースを説明できますか?このコードで

答えて

4

function SomeObject (param) { 
    this.param = param = param || {}; 
} 

二つの別個の割り当てがなされる。paramローカル変数(関数の実引数)に1、それがあることを起こる何thisのプロパティに1を。これら2つの異なる割り当て目標は、ではなく、と同じです。

function whatever(x) { 
    x = x || {}; 
:(。彼らはもちろんの同じ値を取得しますが、彼らは値を入れるための2つの別々の場所にいる)私の経験で

、それはパラメータ自体のために設立され、簡単なデフォルトを確認するためにはるかに一般的です

しかし、理にかなっているときにオブジェクトプロパティに割り当てることは間違っていません。

関連する問題