簡體   English   中英

ES2015導出內部功能

[英]ES2015 Export inside function

我正在學習ES2015的導出功能。 我嘗試在網上理解它,但我的疑慮仍未解決

當我在匿名函數中聲明導出時,jshint顯示以下錯誤(至少在Intellij插件中):

E053出口申報必須在全球范圍內。

相反,JSHint總是要求在Anonymous函數中包含整個代碼。 如果我按以下方式編寫代碼:

export const MY_CONSTANT = 1000;
(function(){
   'use strict';
    //Complete code goes here
}();

我們必須在頁面的頂部和底部編寫大量代碼。 某些代碼將從文件之間跳轉到頁面的開頭(或結尾)。

我可以解釋它的最好方法是javascript IIFE是創建封裝的方式。 您可以將模塊的代碼放在一個並返回某個類型的對象。 如果您需要將代碼導入其中,您可以使用參數進行導入。 新模塊語法允許您以不同的方式執行相同操作。 將進口視為IIFE的參數,將出口視為回報。 以下是Mozilla導入導出語法的完整說明https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

更進一步,如果你想探索更多,我已經創建了一些使用babel,gulp,browserify和jasmine的樣板,所以我可以將所有代碼編寫為es2015。 https://github.com/jamesrhaley/es2015-babel-gulp-jasmine.git

如果您使用的是ES2015模塊語法,則可能不需要將代碼包裝在匿名函數中,因為模塊加載器會處理導出的代碼。

我不確定每個模塊加載器,但是當使用TypeScript + browserify時,每個文件都被包裝以防止變量混亂全局命名空間。 有關如何使用模塊語法以及為什么可以全局聲明變量的更多信息,請參閱為什么必須在es2015中將導出導入聲明置於頂層

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM