exportとmodule.exportの違い
3014 ワード
ブラウザ側のjsでは、各モジュールの変数衝突などの問題を解決するために、jsのクローズドによって左右のモジュールに関連するコードを匿名関数に包装します.Nodejsモジュールはかなり自由です.開発者はrequire、exports、moduleなどいくつかの変数に注目するだけで十分です.モジュールの可読性を維持するために、異なる機能のコードブロックを独立したモジュールとして作成し、モジュールの結合を減らすことをオススメします.
nodeのjsモジュールで直接exportsとmoduleの二つの「グローバル」変数を呼び出すことができますが、exportsはmodule.exportsの参照です.
module.export=plus; exportはmodule.exportsの一つの引用 である. module.exportの初期値は一つの空のオブジェクト{}であり、exportの初期値も{} である. requireモジュールを参照した後、戻ってくるのはmodule.exportではなくexportsです!!! exports.xxxは、導出対象に属性を掛けることに相当し、この属性は呼び出しモジュールに直接 を見ることができる. export=exportオブジェクトへの再割当に相当し、呼び出しモジュールはexportオブジェクトとその属性 にアクセスできない.このモジュールがクラスの場合、直接的にmodule.exportに値を割り当てるべきであり、このように調整者はクラスのコンストラクタであり、直接的にnewのインスタンスを作ることができる. 例一:
referenceは参照という意味で、二つの変数が同じ値を参照することで、同じメモリアドレスを指します.
nodeのjsモジュールで直接exportsとmoduleの二つの「グローバル」変数を呼び出すことができますが、exportsはmodule.exportsの参照です.
//plus.js
function plus(a,b){
return a+b;
}
// plus exports
exports.plus = plus;
// main.js
var Plus = require('plus');
console.log(Plus.plus(1,2)); // Plus require , plus 。
nodeのコンパイルの過程で、jsモジュールは以下の形式にカプセル化されます.// require Node.js Module._load
// __finename __dirname Node.js
(function(exports,require,module,__filename,__dirname){
function plus(a,b){
return a+b;
}
exports.plus = plus;
})
モジュールではなく関数を直接モジュールにエクスポートするための方法が必要です.module.export=plus;
// plus.js
function plus(a,b){
return a+b ;
}
module.exports = plus;
// main.js
var plus = require('plus');
console.log(plus(1,2));
exports=module.export={}var name = 'rainbow';
exports.name = name;
exports.sayName = function(){
console.log(name);
}
// exports module.exports , :
var name = 'rainbow';
module.exports.name = name;
module.exports.sayName = function(){
console.log(name);
}
例二:exports = module.exports = somethings
//
module.exports = somethings
exports = module.exports
// module.exports = somethings mudole.exports , module.exports exports ,mudole.exports , exports , module.exports exports " ", exports = module.exports.
例三:exports = function(){};
// exports , module.exports , 。
例四:module.exports.something = function(){};
exports.something = function(){};
//
例5:// index.js
var something = require('./requireMe');
something();
// requireMe.js
exports.something = function(){
console.log('am a function');
}
// , require module.exports object,
//
// requireMe.js
module.exports = function(){
console.log('am a function');
}
// , , module.exports function, 。
//
// index.js
var something = require('./requireMe');
something.something();
// require object, something , 。
other:referenceは参照という意味で、二つの変数が同じ値を参照することで、同じメモリアドレスを指します.