Ari*_*rya 6 javascript ecmascript-6 es6-module-loader
我遇到了这个在ExploringJS中没有得到很好解释的区别
合格和不合格的进口工作方式相同(它们都是间接的)
区别是什么,因此该陈述的含义是什么?
严格来说,JavaScrpit 中不存在合格/不合格导入之类的东西。这些术语在 Axel Rauschmayer 博士的《Exploring ES6》一书中在循环依赖的背景下使用,大致意思是:
通用JS:
var foo = require('a').foo // doesn't work with cyclic dependencies
Run Code Online (Sandbox Code Playgroud)
ES2015:
import {foo} from 'a' // can work with cyclic dependencies*
Run Code Online (Sandbox Code Playgroud)
通用JS:
var a = require('a')
function bar() {
a.foo() // can work with cyclic dependencies*
}
exports.bar = bar
Run Code Online (Sandbox Code Playgroud)
ES2015:
import * as a from 'a'
export function bar() {
a.foo() // can work with cyclic dependencies*
}
Run Code Online (Sandbox Code Playgroud)
在 ES2015 中,如果默认导入充当命名空间,那么它们也可以是限定导入(尽管有些人不同意):
export default {
fn1,
fn2
}
Run Code Online (Sandbox Code Playgroud)
使用循环依赖项,您无法访问模块主体中的导入:
import {foo} from 'a' // 'a' is a cyclic dependency
foo() // doesn't work
Run Code Online (Sandbox Code Playgroud)