У меня есть массив, который объявлен в верхней части моего приложения:Изменяет массивы в нескольких функциях плохой практики?
var arr = [1,2,3,4]
И у меня есть два метода, работающие в фоновом режиме.
Метод 1
Array.prototype.numberOfCoolElements = function(){
doSomethings();
doOtherThings();
// meantime, the method2 will be called
return this.length;
}
Метод 2
Array.prototype.changeTheLength = function(){
this[100] = 123;
}
Если я бегу оба метода на двух функций асинхронными с одной и той же ссылки на массив:
Можно ли на длине функция будет изменена после вызова numberOfCoolElements
и до ее завершения?
Нет, javascript однопоточный. – cgTag
Это зависит от того, какое действие async завершается первым, перед изменением массива –
Если я запускаю оба в одно и то же время, в двух функциях async, возможно, чтобы changeLength будет завершена непосредственно перед возвратом числаOfCoolElements? – 2014-09-28 12:51:38