class 내에서의 this는 클래스 자신을 의미하고, 함수안에서 this는 global 객체를 의미한다.
클래스 안도 아니고 함수 안도 아닌 this는 어떻게 노출될까 ? {}로 노출된다.
브라우저에서는 밖에서 쓰이는 this는 글로벌 객체를 가리키나, nodejs 에서 외부에서 호출되는 this는 모듈에 있는 exports를 가리키고 있다.
function hello(){ console.log(this); console.log(this === global); } hello(); class A { constructor(num){ this.num = num; } memberFunction(){ console.log('----------class---------') console.log(this); console.log(this === global); } } const a = new A(1); a.memberFunction(); console.log('--- global scope ---'); console.log(this); console.log(this === module.exports); //true