簡體   English   中英

新的javascript ES6模塊術語中的合格和不合格導入有什么區別?

[英]What is the difference between qualified and unqualified imports in the new javascript ES6 module lingo?

我遇到了這個在ExploringJS中沒有得到很好解釋的區別

合格和不合格的進口工作方式相同(它們都是間接的)

區別是什么,因此該陳述的含義是什么?

嚴格來說,JavaScrpit中沒有合格/不合格的導入。 Axel Rauschmayer博士在循環依賴的背景下,在“探索ES6”一書中使用了這些術語,大致意思是:

不合格的導入(直接導入模塊的一部分):

CommonJS的

var foo = require('a').foo // doesn't work with cyclic dependencies

ES2015

import {foo} from 'a' // can work with cyclic dependencies*

合格導入(將整個模塊導入為命名空間):

CommonJS的

var a = require('a')
function bar() {
  a.foo() // can work with cyclic dependencies*
}
exports.bar = bar

ES2015

import * as a from 'a'
export function bar() {
  a.foo() // can work with cyclic dependencies*
}

在ES2015中,默認導入也可以是限定導入(盡管有些人不同意),如果它們用作命名空間:

export default {
  fn1,
  fn2
}

*具有循環依賴關系,您無法訪問模塊正文中的導入:

import {foo} from 'a' // 'a' is a cyclic dependency
foo() // doesn't work

暫無
暫無

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

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