2015-05-17 18 views
8

Tôi có đoạn code:ES6 mô-đun phạm vi

// lib.js 
var a = "a"; 
export var b = "b"; 

// main.js 
console.log(a); // "a" variable is not available in a global scope 
import {b} from "lib"; 
console.log(a); // is "a" variable available in a global scope or only in a module scope? 

Tôi có thể sử dụng "a" biến trong một phạm vi toàn cầu sau khi mô-đun nhập khẩu hoặc là nó chỉ có trong một phạm vi mô-đun? ES6 module sẽ có một nguyên tắc làm việc tương tự như thủ thuật này:

// module  
exports.module1 = (function(){ var a = "a"; })(); // "a" variable is not available in a global scope 

Trả lời

12

Tôi có thể sử dụng "a" biến trong một phạm vi toàn cầu sau khi mô-đun nhập khẩu hoặc là nó chỉ có trong một phạm vi mô-đun?

Đó là chỉ có sẵn bên trong module nó được khai báo trong

Will ES6 module có một nguyên tắc làm việc tương tự như thủ thuật này:. [...]

Về cơ bản có.


ES6 có các loại phạm vi, theo thứ tự từ "top" đến "đáy":

  • phạm vi toàn cầu
  • phạm vi Mô-đun
  • phạm vi chức năng
  • Khối phạm vi
+0

Cảm ơn bạn rất nhiều. –

0

cho phép nói rằng bạn đang xuất một thứ gì đó sang một mô-đun khác. ví dụ bạn đang xuất var b = 'b', nhưng bạn không xuất khẩu var a = 'a'. điều này có nghĩa là bạn chỉ có thể sử dụng var a = 'a' trong lib.js, Đây là địa phương cho mô-đun mà nó được khai báo và chỉ có thể được sử dụng trong mô-đun đó. var a được đặt ở mô-đun lib.js.