Страницы

вторник, 22 марта 2011 г.

FireFox не любит рекурсий

Если писать много и сложно, то может случиться так, что fireFox вдруг решит выпендриться и написать too many recursions и скрипт дальше отказываеться работать вообще.. Ты начинаешь лихорадочно искать, где ж у меня рекурсия, может она и есть, но тут лучше скажу про другой нюанс. JavaScript использует механизм замыкания, через него мы любим создавать объекты. Так вот это тоже подпадает под это гениальное сообщение в консоли ошибок..

Например...

function Rect(x_,y_,x1_,y2_){
this.x=x_;
this.y=y_;
this.x1=x1_;
this.y1=y1_;
this.some_func(i){
////
this.x+=i;
this.y+=i;


///

}

};

function some_func(){

for(var f=0;f<10000;f++){
var r=new Rect(f,f,f+100,f+100);
r.some_func(f/199);


}
return true;

}
Если очень упорствовать, то можно в цикле нарваться на сообщение too many recursions.. То есть злоупотреблять с созданием объектов не стоит. Прям аналогии с С++ и выделением памяти.

Комментариев нет: