2013-01-22 1 views

답변

5

당신이 process 대신 window

+0

"창"과 비슷한 특수 오브젝트를 만들고 싶습니다. "foo"를 첨부하면 "foo"를 전역으로 만듭니다. –

5

글로벌 물건을 첨부 할 수 있습니다 당신은 그 목적을 위해 미리 정의 된 개체 global를 사용할 수 있습니다. fooglobal 개체의 속성으로 정의하면이 개체는 이후 사용되는 모든 모듈에서 사용할 수 있습니다. 예를 들어

app.js :

exports.bar = function() { 
    console.log(foobar); 
} 

global 객체이기 때문에 당신이 var 키워드를 사용하지 않는 확인하십시오

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

이미 정의되어 있습니다.

설명서는 http://nodejs.org/api/globals.html#globals_global을 확인하십시오.

+0

하지만 브라우저 자바 스크립트와 달리 전역 객체는 단어의 의미에서 진정으로 전역 적이 지 않습니다. 그것들은 여전히 ​​자바 스크립트 파일 인 모듈에 대해 로컬입니다. 즉, 파일의 전역 객체에 첨부 된 것은 다른 파일에서 사용할 수 없으므로 특수한'module.exports' 객체에 첨부해야합니다. nodejs가 어떻게 작동하는지 더 많은 정보를 확인하십시오. –

+0

답변 및 통지 주셔서 감사합니다. 나는이 간단한 해결책을 찾았다 : var mySpecialObject = global. 브라우저 (전역 범위) : mySpecialObject = this. –

1

GLOBAL 개체를 사용할 수 있습니다. 당신이 (터미널에서 실행중인 노드에 자바 스크립트를 모두 웹 콘솔을 비교한다면

var mySpecialObject = this; // Run this at global scope 
0

나는이 간단한 해결책에 왔어요) :

window < ->global (참고 : GLOBAL i 현재 실행중인 프로그램 과정)

: - : window.wgSiteName (보여 랜덤 기능) 노드 (터미널

) :>process (주 global.url

document < 웹 콘솔에서

)는 지원되지 않습니다 s의 웹 콘솔의

: 노드 (터미널)의 document.title

: process.title

0

:

var mySpecialObject = global; 

일반 브라우저에서 :

fruit = 'banana'; 
console.log(GLOBAL.fruit); // prints 'banana' 

var car = 'volks'; 
console.log(GLOBAL.car); // prints undefined 
관련 문제