Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   FF не вызывает функцию (https://javascript.ru/forum/css-html/46945-ff-ne-vyzyvaet-funkciyu.html)

LordSmile 30.04.2014 21:31

FF не вызывает функцию
 
Доброго дня! Имеется проблемка с Firefox :help: :
var a_0 = число;
var b_0 = число;
var a = myfunc(a_0, b_0).ix;
var b = myfunc(a_0, b_0).iy;
function myfunc(a_1 , b_1){
//простые математические вычисления, где a_1 и b_1 преобразуются в х и у
//т.е. x = f1(a_1 , b_1) и y = f2(a_1 , b_1)
return {ix : Math.ceil(x), iy : Math.ceil(y)}
}

Вот такой вот код не работает в Firefox. В Опера, Хром, Яндекс, в ИЕ все нормально работает - кроме FF. a и b не присваиваются - функция вообще почему-то не вызывается в FF.
Вообще-то a_0, b_0 приходят JSONом с сервера и через JSON.parse(this.responseText) попадают в скрипт, но так как выше, тоже не работает; если передавать функции не переменные, а числа - тоже не работает.
Подскажите пожалуйста что не так.
Пробую возвращать [Math.ceil(x), Math.ceil(y)], а потом a = myfunc(a_0, b_0)[0] и b = myfunc(a_0, b_0)[1] - тот же результат - везде работате кроме ФФ.

danik.js 30.04.2014 21:39

в консоль ошибок заглядывал? F12

LordSmile 30.04.2014 21:44

Извените за беспокойство - faultstart!
Вынес функцию за тело условия - все заработало в ФФ как и в остальных.

danik.js 30.04.2014 23:15

Цитата:

Сообщение от LordSmile
Вынес функцию за тело условия

Функция-декларация не должна объявляться в блоках (if/else, while() и т.д.).
Такие случаи не регулируются стандартом ECMA. Поэтому поведение браузеров отличается.

К слову, на функции-выражения такого ограничения нет.


Часовой пояс GMT +3, время: 04:14.