[問題] 關於物件與計時器

看板Ajax作者 (三瘋)時間16年前 (2008/03/05 20:43), 編輯推噓1(107)
留言8則, 2人參與, 最新討論串1/4 (看更多)
請問各位前輩 以下,我想重複執行某個物件的某個method 但是為甚麼程式不是一秒增加一個a,而是瞬間增加無數個a <html> <body> <input id="test" type="text" > <script> addtext=function(){ this.add=function(){ document.getElementById('test').value+='a'; setTimeout(this.add(),1000); } } var myobj = new addtext(); myobj.add(); </script> </body> </html> 把程式改成這樣後正常執行 <html> <body> <input id="test" type="text" > <script> addtext=function(){ this.add=function(){ document.getElementById('test').value+='a'; } } var myobj = new addtext(); setInterval("myobj.add()",1000); </script> </body> </html> 雖然正常執行了,不過我的add函式他本身想要的功能就是自己無限的執行 而不是必須靠全域使用setInterval 請問該怎麼解呢? 再來還有個小問題 為甚可以正常執行的那段中的setInterval("myobj.add()",1000); 如果第一個參數沒有加上雙引號變成字串,是不能執行的呢(難道他用eval在實做?) 以上 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.211.22.196

03/05 22:04, , 1F
this.add()改成this.add就行了;)
03/05 22:04, 1F

03/06 01:04, , 2F
我改成this.add之後還是有一點問題說
03/06 01:04, 2F

03/06 01:04, , 3F
他會出現第二個a,然後就停止了y
03/06 01:04, 3F

03/06 01:04, , 4F
在firefox的錯誤中出現
03/06 01:04, 4F

03/06 01:05, , 5F
useless setTimeout call (missing quotes around argumen
03/06 01:05, 5F

03/06 01:05, , 6F
因此我改成"this.add"
03/06 01:05, 6F

03/06 01:06, , 7F
結果只跑出一個a,但是在firefox中沒有出現錯誤訊息
03/06 01:06, 7F

03/06 01:07, , 8F
整個就另我苦惱阿= =. 希望各位前輩解惑
03/06 01:07, 8F
文章代碼(AID): #17pfLQr_ (Ajax)
文章代碼(AID): #17pfLQr_ (Ajax)