0

私は最近まで単純なJavascriptのダブラーでした。ここ数週間、私はそれのより高度な側面を学ぶことを試みてきました。 Snap.svgのAPIを勉強しながら、古典的なプログラミングの背景から来て、JavaScriptでプロトタイプが...数回以上ループのため左中括弧を間違えてJavascript関数を終了しますか?

私を投げてきた(技術を習得しようとしている)私は、次を発見した:

(function (glob, factory) { 
 
    // AMD support 
 
    if (typeof define == "function" && define.amd) { 
 
     // Define as an anonymous module 
 
     define(["eve"], function (eve) { 
 
      return factory(glob, eve); 
 
     }); 
 
    } else if (typeof exports != 'undefined') { 
 
     // Next for Node.js or CommonJS 
 
     var eve = require('eve'); 
 
     module.exports = factory(glob, eve); 
 
    } else { 
 
     // Browser globals (glob is window) 
 
     // Snap adds itself to window 
 
     factory(glob, glob.eve); 
 
    } 
 
}(window || this, function (window, eve) {

これは最初に、私はそれが匿名の自己呼び出す機能だと思った423

その後、私はオープンに気づいた、ライン#で始まる、スナップの最新バージョンであります中括弧。私は次のコードを見てきましたが、閉じ括弧を考慮することはできません。さらに、8k +行のコード中の中括弧(notepad ++を使用して)を検索すると、閉じているよりももう1つ開いた中かっこが表示されます。また、スニペットの最初の行を折りたたむと、残りのコード(ほぼ8000行)が崩壊します。 APIのコードの最後の行はで終わる:

})); 

それは機能上の行方不明閉じかっこがファイルの末尾にプッシュしまったことは可能ですか?それはおそらくファイルの最後に二重閉じ括弧(2番目のスニペット)を説明できますか?私はgithubのエラーを報告したいと思いますが、私はこれを間違って読んでいると仮定しています。

誰かが何が起こっているのかを説明できるのであれば、私は感謝しています。

+0

これは関数であり、中括弧を開いています。コード内の他の部分も閉じています。関数はIIFEのパラメータとして配置されます。 – adeneo

+0

それは[ここ](http://stackoverflow.com/q/34866510/1048572)の説明です – Bergi

答えて

0

コードの最上位のチャンクは、実際には最終}))で閉じられ、ではなく、の間違いです。

あなたが見ているのは、グローバル参照、AMD、およびCommonJSによってロードできるように、コードのラッパーです(UMD)。

+0

素晴らしい!ちょうど私がこのようなものを手に入れていると思っていたときには、 –

関連する問題