노드 버전은 7.9.0
var a = this;
(function() {
console.log(this === a);
})();
(function() { console.log(this == a) })() true 흠
잠만여 저도 버전올려서 다시해봄
var a = this (function() { console.log(this == a) })() true node --version v7.10.0
아니 이거 왜 그러죠.. 위에 짤 보듯이 제대로 했는데 다른 결과가..
저도 repl말고 로드해서 찍어보니 false로 나오네요
흠 먼차이지
a = 전역의 this
함수안의 this != 전역의 this
함수안의 this는 전역 객체 가리키는 건 맞아요. 이건 어디서든 찍어보면 바로 알수 있어요. 제가 찾은 자료에 의하면 node.js의 최상위 레벨의 this가 전역 객체를 가리키는게 아니라네요.
node.js의 최상위는 전역이 아니라 wrapper object라 그렇다고 하네요.
하나는 글로발이고 하나는 오브젝트로 다르구만
결론 => 함수안의 this == 전역의 this 이려면 모듈이 아닌 환경에서 this가 아무곳에도 바인딩되지 않고 저 라인이 실행
(function() { console.log(this == a) })() true 흠
잠만여 저도 버전올려서 다시해봄
var a = this (function() { console.log(this == a) })() true node --version v7.10.0
아니 이거 왜 그러죠.. 위에 짤 보듯이 제대로 했는데 다른 결과가..
저도 repl말고 로드해서 찍어보니 false로 나오네요
흠 먼차이지
a = 전역의 this
함수안의 this != 전역의 this
함수안의 this는 전역 객체 가리키는 건 맞아요. 이건 어디서든 찍어보면 바로 알수 있어요. 제가 찾은 자료에 의하면 node.js의 최상위 레벨의 this가 전역 객체를 가리키는게 아니라네요.
node.js의 최상위는 전역이 아니라 wrapper object라 그렇다고 하네요.
하나는 글로발이고 하나는 오브젝트로 다르구만
결론 => 함수안의 this == 전역의 this 이려면 모듈이 아닌 환경에서 this가 아무곳에도 바인딩되지 않고 저 라인이 실행