의 루트 객체가 무엇 당신은 Node.js를에서 global
object을 알 수 있습니다Node.js를
{오브젝트} 글로벌 네임 스페이스 개체를. 브라우저에서 최상위 범위 은 전역 범위입니다. 즉, 브라우저에서 전역 범위 var에있는 경우 전역 변수를 정의합니다. 노드에서는이 이 다릅니다. 최상위 범위는 전역 범위가 아닙니다. var 노드 모듈 내부의 항목은 해당 모듈에 대해 로컬입니다.
이제는 어디에도 문서화되지 않은 것으로 보이는 root
개체를 발견했습니다.
내가 root
같은 방법으로 global
로 사용할 수있는 보이지만 : 쉘에서
test1.js
foo = 'bar'; // foo is defined in the global scope (no var in front of foo)
test2.js
require('./test1.js');
console.log(root.foo);
를 :
$ node test2.js
bar
쉘에서 global
과 root
을 검사하면 모양이 같습니다.
$ node
> global
...
> root
...
을 그래서 root
가 global
과 동일 함을 보인다보십시오. 그러나 중복성이 필요한 이유는 무엇입니까? root
이 문서화되지 않은 이유는 무엇입니까? 더 이상 사용되지 않습니까?
노드; 'root === global; // true' – jAndy
'true'의 결과는 두 개의 이름이 같은 "객체 참조"를 참조하고 있다고 알려줍니다. – jAndy
@ 레고 그러나 참조 평등은 깊은 평등보다 강력한 결과입니다 ... – OrangeDog