1、require引入
//require.js
let a = 0; const count = () => { ++a; console.log(a,'==require模塊內部函數執行==') } setTimeout(function(){ ++a; console.log(a,'==require模塊內部定時器執行=='); }, 500); module.exports = { a, count, };
引入:
let foo = require('./js/require'); foo.count(); setTimeout(function(){ console.log(foo.a,'==require導入文件=='); }, 1000);
效果:
結論: require引用值是深拷貝,值的拷貝。
2、es6 import
// es6文件
let b = 0; const countb = () => { ++b; console.log(b,'==es6模塊內部函數執行==') } setTimeout(function(){ ++b; console.log(b,'==es6模塊內部定時器執行=='); }, 500); export { b, countb, };
引入:
import { b, countb } from './js/es6'; countb(); setTimeout(function(){ console.log(b,'==es6導入文件=='); }, 1500);
效果:
結論:es6的import引入是淺拷貝,還有引用關系。