У меня проблема с областью видимости, я знал решение, но это не проблема.
Я хочу знать, почему переменная-член xhrObj
нечитаема из другой функции-члена, хотя эта переменная является глобальной переменной для этой функции-члена?Я не могу прочитать переменную-член изнутри другой функции-члена
0
A
ответ
1
Это происходит потому, что функция xhrObj onreadystatechage
является asynchrous в природе, и когда он вернется после полного вызова this
контекст отличается внутри onreadystatechage()
и, следовательно, this.xhrObj
не отличается.
Это потому, что значение 'this' зависит от характера вызова содержащейся функции. – Pointy
'onreadystatechange' уже является функцией-членом' xhrObj'. Это означает, что, выполнив 'this.xhrObj.readystate', вы пытаетесь получить доступ к' xhrObj' ON 'xhrObj'. вы можете попытаться заменить 'this.xhrObj.readyState' 'this.readyState' и' this.xhrObj.responseText' на 'this.responseText' внутри' this.xhrObj.onreadystatechange'. –
@JeffreyWesterkamp: Вы правы, я забыл об этом. Спасибо. –