LINUX.ORG.RU

Баг?

 


0

1

Это баг или я туплю? Спать хоцаа. Тестил пока только в ноде.


f=function(arr, name){
for(var i=0; i<=arr.length; i++){
var tmp=arr[i](name) // вот тут падает, похоже
if(tmp) return tmp
//if(arr[i](name)) return arr[i](name) // так то же самое
}
}

arr=[function(arg){var a=1; return eval(arg)}, function(arg){var b=2; return eval(arg)}]

f(arr, "a")
//f(arr, "b")// падает при вызове arr[1]("b")

arr[1]("b") // а так норм

ЗЫ протестил везде, везде reference error



Последнее исправление: terminator-101 (всего исправлений: 1)

У тебя в первой функции массива нет b, но ты пытаешься сделать eval('b'). Допиши var b = 3 в первую функцию в массиве.

arr=[function(arg){var a=1; var b=3; return eval(arg)}, function(arg){var b=2; return eval(arg)}]

Black_Roland ★★★★
()
Последнее исправление: Black_Roland (всего исправлений: 1)
Ответ на: комментарий от Black_Roland

Что этот код вообще должен сделать?

Это долго объяснять, это просто тестовый пример, а кода там целый ворох, он другой совсем.

terminator-101
() автор топика

for(var i=0; i<=arr.length; i++){

<=

Норкоман, что ты читаешь в позиции arr[arr.length] если нумерация с 0?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.