//不接收對象 require:require('s.css'); //(es5) improt 's.css' //(es6) //接收對象 var o = require('s.js'); //es(5) import o form s.js //(es6)
導出一個模塊對象(es5):
module.exports={ add:add, sub:sub } 導出一個模塊對象(es6): module.exports={ add, sub } 注意:上es6這種寫法屬性名和屬性值變量是同一個,不然要分開寫 module.exprots={ addFn:add, sub }
//es5 module.exports={ addFun:function(x,y){ return x+y; } } //es6 module.exports={ addFun(x,y){ return x+y; } }
calc.js中有兩個函數:
function add(){} function sub(){} //寫法一 es5寫法: module.exports.add = add; module.exports.sub = sub; es6寫法: exprot function add(){} exprot function sub(){} 使用: var calc = require('./calc.js'); //寫法二 es5: module.exports = {add:add,sub:sub}; es6: exprot default{ add,sub } //表示取得calc.js中全部暴露出來的對象(es6) import calc from './calc.js' //只獲取到calc.js中的add方法(按需獲取) import {add} from './calc.js'
一、若是模塊中使用 export default {} 只能經過 import 對象名稱 from '模塊路徑' 不能經過 import {對象名稱} from '模塊路徑' 二、若是使用 import {對象名稱} from '模塊路徑' 導出具體某個對象或者方法名稱 須要單獨導出對象或者方法: export function add(){} export function sub(){} 使用: import {add, sub} from '模塊路徑' 直接使用 add,sub方法 注意:不能直接使用 import 對象名稱 from '模塊路徑'
轉載:ES5和ES6對象導出和導入javascript
1.export //a.js export const str = "blablabla~"; export function log(sth) { return sth; } 對應的導入方式: //b.js import { str, log } from 'a'; //也能夠分開寫兩次,導入的時候帶花括號 2.export default //a.js const str = "blablabla~"; export default str; 對應的導入方式: //b.js import str from 'a'; //導入的時候沒有花括號
使用export default命令,爲模塊指定默認輸出,這樣就不須要知道所要加載模塊的變量名css
//a.js let sex = "boy"; export default sex(sex不能加大括號) //本來直接export sex外部是沒法識別的,加上default就能夠了.可是一個文件內最多隻能有一個export default。 其實此處至關於爲sex變量值"boy"起了一個系統默認的變量名default,天然default只能有一個值,因此一個文件內不能有多個export default。
// b.js 本質上,a.js文件的export default輸出一個叫作default的變量,而後系統容許你爲它取任意名字。因此能夠爲import的模塊起任何變量名,且不須要用大括號包含 import any from "./a.js" import any12 from "./a.js" console.log(any,any12) // boy,boy
連接:https://www.jianshu.com/p/0e84f5e6866d
es6