Это должно выглядеть так:
obj1.route = new Routeng();
obj2.route = new Routeng();
for(var x=0; x<arrObjs.length; x++) {
var g = arrObjs[x];
(function(ig) {
Routelousse.gen(function(res) {
var pathern = res.pathern;
ig.routel.staviPather(pathern);
MYOBJ.vehicles.push(ig);
alert(ig.name);
}, ig.point);
})(g);
}
В этом мы передаем текущий g
в эту самопроизвольную функцию как другую переменную, а не g
, которая используется в функции, в которой вы находитесь в данный момент (это не область действия блока) и меняет каждый проход цикла for
.
Также обратите внимание на изменение цикла for
... вы никогда не должны использовать цикл for...in
для итерации массива, используйте для этого обычный цикл for
.