2016-01-03 25 views
5

Tôi đang tìm hiểu tính năng xuất của ES2015. Tôi đã cố gắng tìm hiểu nó trực tuyến, nhưng những nghi ngờ của tôi vẫn không được giải quyếtES2015 Xuất bên trong hàm

Khi tôi tuyên bố xuất khẩu bên trong một hàm nặc danh, chương trình jshint sau lỗi (ít nhất là bên trong Intellij plugin):

khai E053 Export phải nằm trong phạm vi toàn cầu.

Ngược lại, JSHint luôn yêu cầu bao bọc toàn bộ mã bên trong hàm Ẩn danh. Nếu tôi viết mã theo cách sau:

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

Chúng tôi phải viết nhiều mã ở đầu và cuối trang. Một số mã sẽ nhảy từ giữa tệp đến đầu (hoặc cuối) của trang.

Trả lời

1

Cách tốt nhất tôi có thể giải thích đó là javascript IIFE là cách tạo gói gọn. Bạn sẽ đặt mã của mô-đun của bạn bên trong một và trả về và đối tượng của một số loại. Nếu bạn cần nhập mã vào nó, bạn sẽ làm như vậy với đối số. Cú pháp mô-đun mới cho phép bạn làm như vậy theo một cách khác. Hãy suy nghĩ về việc nhập khẩu như là các đối số cho IIFE và xuất khẩu là sự trở lại. Dưới đây là giải thích đầy đủ về cú pháp xuất khẩu nhập khẩu từ Mozilla https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import

Hơn nữa nếu bạn muốn khám phá thêm Tôi đã tạo một số bản mẫu sử dụng babel, gulp, browserify và jasmine để tôi có thể viết tất cả mã của mình es2015. https://github.com/jamesrhaley/es2015-babel-gulp-jasmine.git

0

Nếu bạn đang sử dụng cú pháp mô-đun ES2015, có thể bạn không cần phải quấn mã của mình trong một hàm ẩn danh vì trình tải mô-đun xử lý mã nào được xuất.

Tôi không chắc chắn về mọi trình tải mô-đun nhưng khi sử dụng trình duyệt TypeScript +, mỗi tệp được bao bọc để ngăn các biến lộn xộn không gian tên chung. Xem Why must export import declarations be on top level in es2015 để biết thêm về cách làm việc với cú pháp mô-đun và tại sao các biến có thể được khai báo trên toàn cầu.

Các vấn đề liên quan