2016-09-03 11 views
0

私は探していて探していてどこにでも見ていて、私はこのコードが何と呼ばれているか分かりません。私はjQueryからそれを取り出した私はこのコードが何であるか全くわかりません

(function(global, factory) { 

"use strict"; 

if (typeof module === "object" && typeof module.exports === "object") { 

    // For CommonJS and CommonJS-like environments where a proper `window` 
    // is present, execute the factory and get jQuery. 
    // For environments that do not have a `window` with a `document` 
    // (such as Node.js), expose a factory as module.exports. 
    // This accentuates the need for the creation of a real `window`. 
    // e.g. var jQuery = require("jquery")(window); 
    // See ticket #14549 for more info. 
    module.exports = global.document ? 
     factory(global, true) : 
     function(w) { 
      if (!w.document) { 
       throw new Error("jQuery requires a window with a document"); 
      } 
      return factory(w); 
     }; 
} else { 
    factory(global); 
} 

// Pass this if window is not defined yet 
})(typeof window !== "undefined" ? window : this, function(window, noGlobal) {...}) 

私を助けてくれる人は誰ですか?

+1

これは、スクリプトのさまざまな読み込み方法をサポートするためのラッパーです。これは、 'exports'と' require() 'を使うCommonJSスタイルのモジュールシステム(NodeJSのような)と、グローバルを定義することでブラウザで使うことができます。 [UMDjs](https://github.com/umdjs/umd)プロジェクトには、さまざまな組み合わせのテンプレートが用意されています。 –

+0

コメントを市民的かつ建設的にしてください。 –

+0

Hmm。また、私の場合はidkが削除されますが、すべてのコメントは削除されます –

答えて

1

ラップされた/自己呼び出される関数としても知られています。しかし、実際には機能と全く同じです。定義なしで名前なしで呼び出されるちょうど謙虚な関数。したがって、なぜ宣言の終わりに、引数のリストがまっすぐに渡されているのでしょうか。

+0

私はそれを見ることができます。私は自分自身を作るために名前を知りたい –

+0

私の答えを編集します。 –

+0

彼らは本当に名前の特定の時間を持っていません - 彼らは、機能だけです。 –

0

あなたに奇妙に見えるコードの構文について質問している場合、これは「自己呼び出し関数」と呼ばれるものです。

すぐに呼び出され、その名前を宣言していない関数です。ちょうどそれを呼び出す。

関連する問題