>  기사  >  웹 프론트엔드  >  이에 대한 자세한 설명은 Nodejs_node.js에 있습니다.

이에 대한 자세한 설명은 Nodejs_node.js에 있습니다.

WBOY
WBOY원래의
2016-05-16 15:07:561589검색

다음 내용은 javascript의 내용이 아닌 nodejs의 내용입니다. nodejs의 내용은 브라우저의 javascript의 내용과 다릅니다.

이것

글로벌
console.log(this); {}
this.num = 10;
console.log(this.num); 10
console.log(global.num); undefined

전역 세계에서는 기본적으로 빈 개체입니다. 그리고 전역에서 이것은 전역 개체와 아무런 관계가 없습니다. 그렇다면 전역에서 이 작업은 정확히 누구를 가리킵니까? 이에 대해서는 이 장의 후반부에서 설명하겠습니다.

이것

을 함수로
function fn(){
  this.num = 10;
}
fn();
console.log(this); {}
console.log(this.num); undefined
console.log(global.num); 10

함수에서 this는 전역의 this와 동일한 객체가 아닌 전역 객체를 가리킵니다. 간단히 말해서 함수에서 이것을 통해 정의하는 변수는 이때 전역에 속성을 추가하는 것과 같습니다. "이것은 그것과 아무 관련이 없습니다"의 "이"와 동일합니다.

믿을 수 없다면 아래 코드를 보고 증명해 보세요.

function fn(){
  function fn2(){
    this.age = 18;
  }
  fn2();
  console.log(this); global
  console.log(this.age); 18
  console.log(global.age); 18
}
fn();

맞습니다. 함수에서 this는 전역을 가리킵니다.

생성자의

이것

function Fn(){
  this.num = 998;
}
var fn = new Fn();
console.log(fn.num); 998
console.log(global.num); undefined

생성자에서 this는 전역이 아닌 인스턴스를 가리킵니다.

이제 전역적 맥락에서 이에 대해 이야기할 수 있습니다. 실제로 Nodejs의 범위에 대해 더 알고 싶다면 다음을 읽어보세요. Nodejs의 범위 문제에 대한 토론입니다. 이 기사.

주제로 돌아가서, 전역 컨텍스트에서 이는 module.exports를 가리킵니다.

this.num = 10;
console.log(module.exports); {num:10}
console.log(module.exports.num);

글로벌 관점에서 이것이 module.exports를 가리키는 이유는 무엇입니까? 그러면 먼저 module.exports에 대해 더 자세히 알아야 합니다. 기회가 된다면 이에 대해 먼저 알아보도록 하겠습니다. 나중에

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.