왜 내 객체 대신 Window가 반환되는지 이해하려고합니다. 이전 예제를 보면 이것이 효과가있다. 나는 명백한 것을 놓치고 있어야합니다. Javascript 'this'이 내 객체 대신 윈도우를 반환합니다.
이
(function($) {
if (typeof a === "undefined" || a === null) a = {};
if (typeof a.b === "undefined" || a.b === null) a.b = {};
if (typeof a.b.c === "undefined" || a.b.c === null) a.b.c = {};
if (typeof a.b.c.d === "undefined" || a.b.c.d === null) a.b.c.d = {};
if (typeof a.b.c.d.e === "undefined" || a.b.c.d.e === null) a.b.c.d.e = {};
a.b.c.d.e.MyObject = {
method1: function() {
console.log(this); //Returning Window
},
method2: function() {
}
}
}(jQuery));
어떻게하면 'method1'을 호출하는지 알 수 없습니다. 모든 차이를 만들 수 있습니다 ... –
페이지가로드 될 때 a.b.c.d.e.MyObject.method1에 대한 호출이 있습니다. – mgoodric
'window.onload = a.b.c.d.e.MyObject.method1;'과 같은 작업을했기 때문에 문제가 발생했습니다. 'this'의 값은 함수가 정의 된 방식이 아닌 **라는 ** 함수에 의해 결정됩니다. – Pointy