0

我只是一個簡單的Javascript直到最近。在過去的幾周裏,我一直在努力學習更高級的方面。從經典的編程背景的到來,在Javascript原型都扔我一個循環超過幾次...用左大括號結束Javascript函數出錯?

雖然研究Snap.svg API(努力學習技術),我發現以下幾點:

(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 ++)中搜索花括號的出現指示了比關閉更多的大括號。另外,當我摺疊代碼片段中的第一行時,代碼的剩餘部分(將近8000行)摺疊。

})); 

是否有可能在功能上缺少右括號得到被推到了文件的末尾:API中最後一行代碼結尾?這可能可以解釋文件末尾的雙右括號(第二個片段)?我會在github上報告錯誤,但我假設我正在讀這個錯誤。

如果有人能解釋發生了什麼,我會很感激。

+0

這是一個函數,它有一個開放的花括號,當然也有一個關閉的代碼以及代碼中的其他地方。該函數只是作爲IIFE中的一個參數。 – adeneo

+0

它的解釋[這裏](http://stackoverflow.com/q/34866510/1048572) – Bergi

回答

0

頂部的代碼塊實際上是由最終的}))關閉的,它是而不是有錯誤。

您正在查看的是代碼的UMD包裝,以便它可以通過全局引用,AMD和CommonJS進行加載。

+0

太棒了!正當我開始認爲我正在處理這個東西:(謝謝你的答案 –