2

宣言された var が存在するという条件で実行される自己実行関数に遭遇しました。存在しない場合は、オブジェクトが渡されます。

例:

var myFunc = (function(myFunc){}(myFunc || {}));

オブジェクトを渡す「または」条件演算子があるのはなぜですか?

4

2 に答える 2

0
var myFunc = (function(myFunc){}(myFunc||{}));

myFunc 引数は常に次のようになるため、これは意味がありません{}- 私はそれに混乱しています。

悪いことを説明します

最初の例

var cool = {
   person: 'john'
};

(function( Argument ){
  console.log( Argument ); // Result Object {person: "john"} 
}( cool || {} ));

この例では、cool が定義されており、オブジェクトであるため、||


次の例

var cool;
(function( Argument ){
  console.log( Argument ); // Result Object {}
}( cool || {} ));

この例ではクールが定義されています、変数のデフォルト値はundefined この場合は未定義であるため、代わりに引数がオブジェクトです

于 2013-07-13T13:12:07.057 に答える