Страницы

вторник, 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.. То есть злоупотреблять с созданием объектов не стоит. Прям аналогии с С++ и выделением памяти.

Удаление всех элементов массива

Вроде нет ничего проще....Но гениальных вариантов дофига, как оказалось
можно например в цикле делать pop каждому...Страшно॥Да ;)
Ладно долго страдал вот такой формой

var ar=new Array();
ar.push(7);
ar=[]; //delete all


А потом вчитавшись в документацию начал делать так вот

var ar=new Array();
ar.push(7);
ar.length=0; //delete all
Последнее понравилось больше...