Вы уверены, что this.someObjVar
ссылается на extfoo
?
Существует вероятность, что объект this
в функции extfoo.loadArrFromFile
ссылается на саму функцию (xhr.onreadystatechange
), а не на объект extfoo
:
extfoo.loadArrFromFile = function() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
//I'm going to create a new variable for this function called this.someObjVar
//Cause I don't know about extfoo's.
this.someObjVar = xhr.responseText.split('\r\n')
// results '23' elements
console.log("someObjVar length: "+this.someObjVar.length);
//Whup, end of the line, I guess I'll just forget about that variable I just made.
}
}
// request code ...
};
Есть несколько способов исправить это, но для проверки попробуйте изменить this
в функции extfoo.loadArrFromFile
на extfoo
.
Вот как это исправить:
extfoo.loadArrFromFile = function() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
//OOOH you mean that object
extfoo.someObjVar = xhr.responseText.split('\r\n')
// results '23' elements
console.log("someObjVar length: "+extfoo.someObjVar.length);
}
}
// request code ...
};
И последнее, что ... 1020 * должно отличаться от extfoo.someObjVar
? Этот код будет работать, если это так, но в противном случае вы захотите включить SomeClass
между каждой ссылкой.