2017-11-18 43 views
0

は、エクスポートコードを例示するために、このコードを使用しています。webpackではmodule.exportsの動作が異なりますか?この<a href="https://www.ag-grid.com/ag-grid-understanding-webpack/" rel="nofollow noreferrer">tutorial</a>著者で

//

var sum = function (a, b) { 
    return a + b; 
}; 
module.exports = sum; 

をsum.jsしかし、これは間違っていないのですか?私はmodule.exportsがオブジェクトであり、あなたがそれにsumのキーを割り当てると仮定していると思ったし、この他articleが何をしたかのようなものに似て、それへの機能のvalue -

//

をgreetings.js

// var exports = module.exports = {};

exports.sayHelloInEnglish = function() { 
    return "HELLO"; 
}; 

exports.sayHelloInSpanish = function() { 
    return "Hola"; 
}; 

。最初の作者はうんざりしましたか?

答えて

3

module.exportsは、require()から返される内容の参考にすぎません。その値をメソッドを含むobjectに設定するだけでなく、その値を関数または他の割り当て可能な値に設定することもできます。

+0

これはファイル単位でスコープされていますか?その結果、各ファイルの 'module.exports'はファイルa.jsの' 'a''にその値を設定することで、その値を' 'b'''ファイルに設定することを意味する意味でそのファイルにスコープされますb.js?コモンズは、これらのキーと値をすべて魔法のように1つのオブジェクトに入れますか? – stackjlei

+0

Webpackを使用すると、すべてのファイルがIIFEモジュールを使用して1つの大きなファイルにバンドルされます。これは、閉鎖の助けを借りてモジュール間の変数名の衝突を防ぎます。 –

+0

満足すれば答えを受け入れてください。 –

関連する問題

 関連する問題