Fly Mesaj tarihi: Ekim 16, 2012 Mesaj tarihi: Ekim 16, 2012 classim var instance'larim var, her obje periyodik olarak bir sey cagiracak kendi schedulerimi yazmam istedigim bir cozum degil, hayir _abc.prototype.fun=function() { var _this=this; .. this.timeouthandle=setTimeout(function(){_this.fun()},1000); } <loop, donuyor birkac kez> { instance=new _abc(); //sorun burada degil, dogru obje aliyorum ... _abc.instarray.push(instance); //gc olayi ... instance.fun(); } settimeout contexti degisiyor ondan java c++ gibi bir dildeki gibi metod cagrisi yapilmiyor ok onu anladim _this=blabla diyerek _this.fun'in icine girecek olan this'in refere ettigi sey olarak objenin kendisi yapin diyor stackoverflowdaki onyuzmilyon sayfada, yapiyorum sorun su : _abc classindan birkac instance var instance.fun()'lar bir kere, iclerindeki timeout da bir kez daha cagiriyor hepsini, firebug ile bakiyorum sonra genelde en sonuncusu olmak uzere tum cagrilar ona gidiyor, diger objelere hic dusmuyor firebug yavaslatiyor meydan son instance'a kaliyor diye bir durum yok, iki browserda debugger olmadan da gordugum davranis bu yok mu bunun oluru ? jquery'de kolay yolu varsa o da olur edit : unuttum, parametreli timeout da kullansam sonuc ayni.
reyou Mesaj tarihi: Ekim 16, 2012 Mesaj tarihi: Ekim 16, 2012 ben anlamadim bisi yaw, kac tane timeout var, siraylami cagrilcak? yoksa karisikmi?
Fly Mesaj tarihi: Ekim 16, 2012 Konuyu açan Mesaj tarihi: Ekim 16, 2012 editledim loopun icinde birkac obje olusuyor objeler ayni classtan objelerin yaptigi cagri kendini timeout ile tekrar cagiran turden sirasi dert degil
di Mesaj tarihi: Ekim 16, 2012 Mesaj tarihi: Ekim 16, 2012 Valla dikkatli okumadim isten gucten ama js'de instance olayi biraz daha farkli. Hersey object bi kere. Fonksiyonlarin kendisi ve veri tipleri dahil. Mesela "hede" esasen String() objesinden turemis bisey ve sen gidip String()'i extend ettiginde daha once yarattigin string'lerin hepsinde yeni ekledigin ozellige sahi oluyosun. Bu kadarini anlatip kaciyorum. heh
reyou Mesaj tarihi: Ekim 16, 2012 Mesaj tarihi: Ekim 16, 2012 sen loop icerisinde fonksyonu cagirirken ayni zamanda yok ediyorsun, o yuzden settimeout a girmiyo.. onlaru bi array icerisine push et, ondan sonra cagir.
Fly Mesaj tarihi: Ekim 16, 2012 Konuyu açan Mesaj tarihi: Ekim 16, 2012 hah onu diyecektim yoketmek derken referans kayboldugu icin gc topluyor diyorsan class variable olan bir arraya ekliyorum firebug'dan kurcalayinca yokolmus gozukmuyorlar, yerinde hepsi said: Valla dikkatli okumadim isten gucten ama js'de instance olayi biraz daha farkli. Hersey object bi kere. Fonksiyonlarin kendisi ve veri tipleri dahil. Mesela "hede" esasen String() objesinden turemis bisey ve sen gidip String()'i extend ettiginde daha once yarattigin string'lerin hepsinde yeni ekledigin ozellige sahi oluyosun. ha yok sorun fonksiyonun contexti gibi daha ziyade kim kimin metodu belli degil
reyou Mesaj tarihi: Ekim 16, 2012 Mesaj tarihi: Ekim 16, 2012 loop icinde tum objelere id property si ekle bakalim en sonunda hepsi ayni id mi var yoksa farklimi buyuk olasilikla sen assign ederken hepsini son objeyi point ediyo memoryde
Fly Mesaj tarihi: Ekim 16, 2012 Konuyu açan Mesaj tarihi: Ekim 16, 2012 ok, bi dk baska workaround denedim olmadi, neyse : http://pastebin.com/m3CSZwS4 tek instance olan objelerde stackoverflowdan gordugum kadariyla _this=this hackinin calismasi lazim _cursor classi baska dosyada da o tipten obje yerine herhangi bir sey gelebilir, onunla alakali koda gelemiyor daha browser, sayi vs girip cursorla alakali seyleri kaldirinca de ayni sey, diger classla ilgisi yok sorunun
Öne çıkan mesajlar