2017-01-15 4 views
0

У меня проблема с областью видимости, я знал решение, но это не проблема.
Я хочу знать, почему переменная-член xhrObj нечитаема из другой функции-члена, хотя эта переменная является глобальной переменной для этой функции-члена?Я не могу прочитать переменную-член изнутри другой функции-члена

+0

Это потому, что значение 'this' зависит от характера вызова содержащейся функции. – Pointy

+0

'onreadystatechange' уже является функцией-членом' xhrObj'. Это означает, что, выполнив 'this.xhrObj.readystate', вы пытаетесь получить доступ к' xhrObj' ON 'xhrObj'. вы можете попытаться заменить 'this.xhrObj.readyState' 'this.readyState' и' this.xhrObj.responseText' на 'this.responseText' внутри' this.xhrObj.onreadystatechange'. –

+0

@JeffreyWesterkamp: Вы правы, я забыл об этом. Спасибо. –

ответ

1

Это происходит потому, что функция xhrObj onreadystatechage является asynchrous в природе, и когда он вернется после полного вызова this контекст отличается внутри onreadystatechage() и, следовательно, this.xhrObj не отличается.

 Смежные вопросы

  • Нет связанных вопросов^_^