Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Массив функций (https://javascript.ru/forum/misc/54449-massiv-funkcijj.html)

Siend 17.03.2015 20:10

Массив функций
 
Подскажите где я ошибся?


var Redering = { //объект содержащий массив будущих функций           
Functions: []      
}
        
function AL() {  //объявили тестовую функцию         
alert("1")      
}       

Redering.Functions.push(AL) //добавили функцию в объект
   
Redering.Functions[0] //вызвали функцию


Не работает. Функция просто не откликается, свой alert я не получаю, консоль об ошибках тоже молчит(

nerv_ 17.03.2015 20:12

var Redering = { //объект содержащий массив будущих функций           
Functions: []      
}
        
function AL() {  //объявили тестовую функцию         
alert("1")      
}       

Redering.Functions.push(AL) //добавили функцию в объект
   
Redering.Functions[0]() //вызвали функцию

Siend 17.03.2015 20:17

Помогло, но проблема оказалась глубже. Усложняю задачу)
var Redering = {
            Functions: []
        }


        function NewGraphEditor(divName, canvasName, width, height) {
           ...
           ...
           ...
            var temp = new CanvasControl(document.getElementById(canvasName))
            Redering.Functions.push(temp.draw) //добавили функцию в массив
            return temp
        }       

      var Can1 = NewGraphEditor("GraphEditor", "lol")   
 
      function StartRendering() {
          window.requestAnimationFrame(function () {
              
//Can1.draw() - этот вариант РАБОТАЕТ 

              Redering.Functions[0]() // - этот вариант НЕ РАБОТАЕТ
              StartRendering()
          });
      }

Siend 17.03.2015 21:21

Проблема решена.

MallSerg 18.03.2015 15:50

Хрустальный шар подсказывает что что-то тут глубоко неправильное.
Ты точно думаешь что работать с массивом функций при каждом вызове window.requestAnimationFrame это хорошая идея?

Siend 19.03.2015 21:29

не я такой, задача такая, не тривиальная)


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