nodejsは、JSファイルを実行する際に、グローバルスコープで関数を呼び出すときに、このように、コンテキストをモジュールにthis
に結合するであろうことを言われています:ない 『10』私は予想通り、nodejsグローバル変数は "module"関数にバインドされますか?
function father(){
this.id=10
}
father();
console.log(module.id);
また、実際にプリント「」 。モジュールが訪問するキーワードがある場合は、私はこれを試してみました:
(function (exports, require, module, __filename, __dirname) {
father();
console.log(module.id);
})()
しかし、今回は、それはconsole.log(module.id)
の行で例外をスローし、最後に
"TypeError: Cannot read property 'id' of undefined.
を言って、私はこれを試してみました:
console.log(this===module);
console.log(this===global);
function f1(){console.log(this===module);}
function f2(){console.log(this===global);}
function g1(){
return function(){console.log(this===module);};
}
function g2(){
return function(){console.log(this===global);};
}
f1();
f2();
g1()();
g2()();
まあそれは印刷します。
false
false
false
true
false
true
第1の回答と同じではありません。だから私はjsファイルの中で "node"キーワードをどのように使ってNodejsが実行できるのでしょうか?
そして最後に試してみてください。
function h(){this.a='abc';}
h()
console.log(module.exports.a);
私は "ABC" を印刷することを期待するが、それでもそれは "未定義"
感謝を印刷します。
それはまったく意味がありません。もし何も渡さなければ、 'module'パラメータは明らかに' undefined'です。 – Bergi