this 는 또 다른 인자 같은 존재, 호출하는 순간, 호출하는 모양새에 따라 어떤 객체를 가르킬지 결정된다고 합니다.
함수 형태(Function form)
functionObject(arguments);
이 경우, 'this'는 전역객체.
메서드 형태(Method form)
thisObject.methodName(arguments); thisObject["methodName"](arguments);
이 경우는, 'this'는 thisObject.
생성자 형태(Constructor form)
new functionObject(arguments);
생성자 형태에서 'this'는 새로운 객체.
여담으로, 생성자 형태에서 특별한 리턴 값이 없을 경우, 새롭게 생성된 객체 즉, this를 리턴하게 됩니다.
apply 형태
functionObject.apply(thisObject, [arguments]);
마지막으로, 'this'는 thisObject.
출처: YUI Theater: Douglas Crockford, The JavaScript Programming Language