W zasadzie przez przypadek sie z tym zetknalem, bo stwierdzilem ze napisze jakis skrypt nie pod przegladarke i odpale go przez node'a. Zdziwila mnie jedna rzecz, ale juz sobie z nia poradzilem. O ile sie nie myle to this w przegladarce wskazuje na globalny obiekt jakim jest window, a w node tak nie jest (jest to zakres pliku, czy cos takiego). Wszystko by bylo okej, ale napotkalem kolejny problem ale odpowiedzi nie znalazlem.

var a = 'I\'m the global variable';

function foo() {
    var a = 'I\'m the inner variable';
    console.log('FOO a: ', a);
    console.log('FOO this.a: ',this.a);
    console.log(this);
}
console.log('Outside FOO a: ', a);
console.log('Outside FOO this.a: ', this.a);
console.log(this);
foo();

this w foo wywala globalny obiekt, w ktorym znajduje sie a, a this poza funkcja wywala pusty obiekt, czyli to o czym mowilem wyzej. Dlaczego w przegladarce oba this wkazuja na ten sam obiekt(window), a tutaj jedno na pusty obiekt, a drugie na globalny obiekt i to tylko wewnatrz funkcji?