我在module.js输出接口,在main.js中引入
// module.js
export default function foo () {
console.log('huuuuuu')
}
foo = function () {
console.log('huahua')
}
// main.js
import foo from './module.js';
foo() // 'huahua'
执行结果输出huahua
现在我将module.js修改成
function foo () {
console.log('huuuuuu')
}
export default foo
foo = function () {
console.log('huahua')
}
执行结果输出huuuuuu
ES6模块的接口与其对应的值不是动态绑定的?下面的修改并没有引起动态改变?
我看了一下两者对应的 babel 编译结果:
第一种:http://babeljs.io/repl/#?babi...
ES6 源码:
编译结果为:
第二种写法,编译结果为
http://babeljs.io/repl/#?babi...
关于这个问题,已经有对应的 issue 讨论了:https://github.com/babel/babe...
会被解析为: