module.exports和exports

// 2.js
exports.id = 'exports的id';  
exports.id2 = 'exports的id2';  
exports.func = function(){  
    console.log('exports的函數(shù)');
};
exports.func2 = function() {  
    console.log('exports的函數(shù)2');
};
module.exports = {  
    id: 'module.exports的id',
    func:function(){
        console.log('module.exports的函數(shù)');
    }

};
// 3.js
var a = require('./2.js');  
// 當屬性和函數(shù)在module.exports都有定義時:
console.log(a.id);  // module.exports的id  
console.log(a.func()); // module.exports的函數(shù)

// 當屬性在module.exports沒有定義,函數(shù)在module.exports有定義
console.log(a.id2);  // undefined  
console.log(a.func());  // module.exports的函數(shù)

// 當函數(shù)在module.exports沒有定義,屬性在module.exports有定義
console.log(a.id);        // module.exports的id  
console.log(a.func2());    // 報錯了 TypeError: a.func2 is not a function  

由上得知
1.module.exports像是exports的大哥,當module.exports以{}整體導(dǎo)出時會覆蓋exports的屬性和方法,
2.注意,若只是將屬性/方法掛載在module.exports./exports.上時,exports.id=1和module.exports.id=100,module.exports.id=function(){}和exports.id=function(){},最后id的值取決于exports.id和module.exports.id的順序,誰在后,就是最后的值

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容