ブラウザで実行している場合、「ウィンドウ」オブジェクトに添付されているものはすべて自動的にグローバルオブジェクトになります。 Nodejsに似たオブジェクトを作成するにはどうすればいいですか?Nodejsの "window"オブジェクトをエミュレートするには?
mySpecialObject.foo = 9;
var f = function() { console.log(foo); };
f(); // This should print "9" to console
ブラウザで実行している場合、「ウィンドウ」オブジェクトに添付されているものはすべて自動的にグローバルオブジェクトになります。 Nodejsに似たオブジェクトを作成するにはどうすればいいですか?Nodejsの "window"オブジェクトをエミュレートするには?
mySpecialObject.foo = 9;
var f = function() { console.log(foo); };
f(); // This should print "9" to console
あなたがprocess
代わりのwindow
にグローバルなものを添付することができますあなたは、その目的のために事前に定義されたオブジェクトglobal
を使用することができます。 global
オブジェクトのプロパティとしてfoo
を定義すると、その後使用されるすべてのモジュールで利用できるようになります。例えば
、app.jsに:
var http = require('http');
var foo = require('./foo');
http.createServer(function (req, res) {
//Define the variable in global scope.
global.foobar = 9;
foo.bar();
}).listen(1337, '127.0.0.1');
そしてfoo.jsは中:
exports.bar = function() {
console.log(foobar);
}
global
オブジェクトがあるとして、あなたがvar
キーワードを使用していないことを確認してください既に定義されています。
ドキュメントについては、http://nodejs.org/api/globals.html#globals_globalをご覧ください。
しかし、ブラウザのjavascriptとは異なり、グローバルオブジェクトは言葉の意味で真にグローバルではありません。それらはモジュールのローカルなので、javascriptファイルです。つまり、ファイルのグローバルオブジェクトにアタッチされたものは、別のファイルでは使用できないため、特別な 'module.exports'オブジェクトにアタッチする必要があります。 nodejsがどのように動作する必要があるかの詳細については、 –
答えと通知をありがとう。私はこの単純なソリューションに来ました:var mySpecialObject = global。ブラウザ(グローバルスコープ):mySpecialObject = this。 –
GLOBALオブジェクトを使用できます。通常のブラウザで
var mySpecialObject = global;
:
fruit = 'banana';
console.log(GLOBAL.fruit); // prints 'banana'
var car = 'volks';
console.log(GLOBAL.car); // prints undefined
あなたはターミナルで実行中のノードにWebコンソールを比較した場合
var mySpecialObject = this; // Run this at global scope
(両方のJavascript ):
window
< - >global
(注:GLOBAL i sがWebコンソールに)
を非推奨:ノード(ターミナル)でwindow.wgSiteName
(ランダム機能を表示するために)
:global.url
document
< - >process
(注:今すぐ実行中のプログラムのプロセスを)
:document.title
ノード(端末):process.title
「ウィンドウ」に似た特殊なオブジェクトを作成したいのです。それに "foo"を付けると、 "foo"がグローバルになります。 –