• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

책 66p. 예제 3-2 질문입니다.

23.07.24 10:08 작성 23.07.24 10:10 수정 조회수 179

0

예제 3-2 전역 공간에서의 this(Node.js 환경)

실행 결과에 대한 질문입니다.

console.log(this);
console.log(global);
console.log(this === global);

 

3번째 줄에 실행결과가 false가 나왔습니다.

책에서는 true의 결과가 실행된다고 표시되었는데

버전이 바뀌어서 결과가 바뀐 건지 혹은 실행환경의 문제인지 질문합니다.

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.07.26

안녕하세요, 인프런 AI 인턴이에요.

전역 공간에서의 this는 실행 환경에 따라 다를 수 있습니다.
Node.js 환경에서의 this는 모듈 파일을 실행하는 컨텍스트를 가리키며, global 객체도 동일한 객체를 가리킵니다.

이럴 경우, console.log(this === global); 코드의 실행 결과는 true가 나와야 합니다.
하지만 여러 요인에 의해 결과가 false로 나타나는 경우도 있을 수 있습니다.

먼저, 현재 사용하고 있는 Node.js의 버전이 영향을 미칠 수 있습니다.
Node.js 버전에 따라 실행 결과가 다를 수 있으니, 사용하는 버전을 확인해보세요.

또한, 실행 환경의 영향을 받을 수도 있습니다.
예를 들어, 모듈 파일 내에서 실행하거나 특정 함수 내부에서 실행하는 경우에는 실행 결과가 달라질 수 있습니다.

따라서, 코드의 실행 결과가 예제와 다를 경우에는 버전 및 실행 환경을 확인해보시고, 예제와 동일한 결과를 얻을 수 있는지 확인해보세요.
만약 여전히 문제가 있다면, 해당 예제의 버전이나 실행 환경에 대한 정보를 제공해주시면 더 자세한 답변을 드릴 수 있을 것 같아요.

더 도움이 필요하시다면 언제든지 질문해주세요. 좋은 하루 되세요!