ES模块
function fun1(a , b){
return a+b ;
}
export {fun1}
//或
export default fun1 ;
// 或
export function fun1(a,b){
return a+b;
}// test1.js
let a= {name:1};
function test1(){
a={test:1} ;
return a ;
}
let c="str";
export function test2(){
return 1;
};
exports.a=a;
exports.c= c;
exports.test1= test1;
a= {fg:4}; //注意
// test2.js
import * as ES from "./test1.js" ;
const node = require("./test1.js");
import a from "./test1.js" ;
console.log(ES);
console.log(node);
console.log(a);//{name:1}
// ES 与 node 是一样的,把两者的导出融在一起
{test2: [Function], a: {name:1}, c: "str", test1: [Function], __esModule: true};
node.test1();
console.log(a);//{name:1}
// a没有变。注意:a= {fg:4} ,当我在a.js里的最后一行加上a = {fg:4}, 不管是在a.js里还是b.js里都没有改变导出的变量。因为用的是exports 导出,也就是commonJS规范。但是当用ES的模块规范情况就变得不一样。
Last updated