[問題] 如何取得現在物件的名稱?

看板Ajax作者 (別在意)時間16年前 (2009/11/01 23:34), 編輯推噓2(208)
留言10則, 5人參與, 最新討論串1/2 (看更多)
假設有個物件_Msg var Msg = new _Msg() 而現在物件的method中有使用到timer setTimeout('Msg.Show();', 500); Msg這個東西會根據new的時候宣告的變數不同而不同,沒有辦法做到在 var Msg1 = new _Msg() var Msg2 = new _Msg() 這樣的宣告時讓兩套物件都能夠獨立活動。 我試過把Msg.show改成this.show但沒有辦法執行,請問有沒有什麼預設 的變數可以取出目前這個object的名字呢?(如上例的話就是取出Msg1,Msg2) 試過javascript object name等等關鍵字去估答案都估不到,希望能有好 心人替我解答,或給個關鍵字都可以,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.254.98

11/02 00:07, , 1F
有沒有用過firebug的console.log?
11/02 00:07, 1F

11/02 00:49, , 2F
setTimeout裡的 this會指向 window,通常不是你要的
11/02 00:49, 2F

11/02 00:52, , 3F
也許可以google"javascript closure"
11/02 00:52, 3F

11/02 01:48, , 4F
多謝
11/02 01:48, 4F

11/02 10:09, , 5F
爬一下文,你會看到一些解法的
11/02 10:09, 5F

11/02 17:32, , 6F
可以麻煩樓下給一下代碼嗎?
11/02 17:32, 6F

11/02 17:32, , 7F
*樓上 我爬不到相關的討論……
11/02 17:32, 7F

11/02 21:43, , 8F
685篇可以參考一下
11/02 21:43, 8F

11/03 13:12, , 9F
setTimeout(Msg.Show, 500);
11/03 13:12, 9F

11/04 18:50, , 10F
樓上 這樣method裡就不能做任何跟this.有關的操作了orz
11/04 18:50, 10F
文章代碼(AID): #1AxQfrCl (Ajax)
文章代碼(AID): #1AxQfrCl (Ajax)