ブラウザで実行すると、「ウィンドウ」オブジェクトにアタッチされているすべてのものが自動的にグローバルオブジェクトになります。Nodejsと同様のオブジェクトを作成するにはどうすればよいですか?
mySpecialObject.foo = 9;
var f = function() { console.log(foo); };
f(); // This should print "9" to console
ブラウザで実行すると、「ウィンドウ」オブジェクトにアタッチされているすべてのものが自動的にグローバルオブジェクトになります。Nodejsと同様のオブジェクトを作成するにはどうすればよいですか?
mySpecialObject.foo = 9;
var f = function() { console.log(foo); };
f(); // This should print "9" to console
そのために事前定義されたオブジェクトglobal
を使用できます。foo
オブジェクトのプロパティとして定義するとglobal
、それ以降に使用されるすべてのモジュールで使用できるようになります。
たとえば、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);
}
オブジェクトは既に定義さvar
れているため、キーワードを使用しないでください。global
ドキュメントについては、http://nodejs.org/api/globals.html#globals_globalを確認してください。
process
代わりにグローバルなものを添付できますwindow