Re: [問題] 使用class

看板Ajax作者 (uruz7)時間17年前 (2008/06/26 19:40), 編輯推噓2(2015)
留言17則, 4人參與, 最新討論串2/2 (看更多)
var IDclass=Class.create(); IDclass.prototype={ initialize:function(ID){ this.ID=ID; ... ... }, getAlbum:function(){ var url = "http://www.wretch.cc/album/"+this.ID; var qstr=""; //this.test(); var ajax=new Ajax.Request(url, { method: 'get', parameters: qstr, onSuccess: function(reqObj) { alert('ALBUM success'); tempResponse=reqObj.responseText; var hideNode=document.getElementById("tempHtml"); hideNode.innerHTML=tempResponse; this.test(); getPhotoUrl(); }, onFailure: function(reqObj) { alert('fail'); addAlbum("XXX","XXX"); } }); }, test:function(){ alert("213"); }, }; 就是this.test();沒辦法執行 直接寫test();也不行 但是如果我沒有放在Ajax.Request裡面可以用this.test()呼叫到 也就是例如在黃色字的地方 我想問是不是因為我在那當下是在另一個物件裡面所以用this會沒辦法看到 如果這個假設是成立的不知道我要怎麼呼叫到IDclass裡面的test:function() 如果其實並不是這麼一回事的話 那我該怎辦~~~~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.235.115 ※ 編輯: uruz7 來自: 140.113.235.115 (06/26 19:41) ※ 編輯: uruz7 來自: 140.113.235.115 (06/26 19:42) ※ 編輯: uruz7 來自: 140.113.235.115 (06/26 19:42) ※ 編輯: uruz7 來自: 140.113.235.115 (06/26 19:43) ※ 編輯: uruz7 來自: 140.113.235.115 (06/26 19:45) ※ 編輯: uruz7 來自: 140.113.235.115 (06/26 19:46)

06/26 19:58, , 1F
你怎麼用IDClass的?var a=new IDClass()嗎?
06/26 19:58, 1F

06/26 20:30, , 2F
恩恩 是
06/26 20:30, 2F

06/26 21:49, , 3F
this 指向的是不同物件, 可在黃字處先用另一變數存放
06/26 21:49, 3F

06/26 21:50, , 4F
藍色字改呼叫另一變數的test(), 試試
06/26 21:50, 4F

06/27 13:01, , 5F
最後是放棄了原本的方式,寫在Ajax.Request()中好像真的不行
06/27 13:01, 5F

06/27 13:02, , 6F
最後是改寫成原本的xmlHttpRequest就沒這個問題了
06/27 13:02, 6F

06/27 14:15, , 7F
是你不會用... chph的推文是正解
06/27 14:15, 7F

06/27 14:15, , 8F
this這個關鍵字可以列為js最常混淆的變數之一了
06/27 14:15, 8F

06/27 19:10, , 9F
被你說對了~~我真的不會用 所以才會土法煉鋼
06/27 19:10, 9F

06/27 19:10, , 10F
不知道能不能夠回一篇完整的說明 雖然我暫時解決了燃眉之急
06/27 19:10, 10F

06/27 19:11, , 11F
但是如果能多學一點總是好的
06/27 19:11, 11F

06/27 20:44, , 12F
主要是要自己生一個example有點累...總之每次產生物件都是
06/27 20:44, 12F

06/27 20:45, , 13F
一個新的實體, 你new Ajax() 它就是一個自己的實體
06/27 20:45, 13F

06/27 20:45, , 14F
你this指到的其實是他 而不是IDClass本尊..
06/27 20:45, 14F

06/27 20:47, , 15F
chph講的應該算是一個值得嘗試的解決方案了...~_~
06/27 20:47, 15F

06/28 19:24, , 16F
恩恩 好像有點董了 先試試 感謝TonyQ!!!!!
06/28 19:24, 16F

06/28 19:25, , 17F
阿 還有chph
06/28 19:25, 17F
文章代碼(AID): #18Ou0KqF (Ajax)
討論串 (同標題文章)
文章代碼(AID): #18Ou0KqF (Ajax)