MozTW 討論區 https://forum.moztw.org/ |
|
javascript 有方法呼叫方法的寫法嗎? https://forum.moztw.org/viewtopic.php?f=13&t=14912 |
第 1 頁 (共 1 頁) |
發表人: | Mask [ 2006-07-23, 02:29 ] |
文章主題 : | javascript 有方法呼叫方法的寫法嗎? |
例如: 代碼: class = {
method1 : function(){ // do something }, method2 : function(){ call method1; // do something } }; 請問有這種寫法嗎?謝謝 |
發表人: | kourge [ 2006-07-23, 07:53 ] |
文章主題 : | |
Mask 寫: 例如:
代碼: class = { method1 : function(){ // do something }, method2 : function(){ call method1; // do something } }; 請問有這種寫法嗎?謝謝 有。 this.method1(); |
發表人: | Mask [ 2006-07-23, 16:14 ] | ||
文章主題 : | |||
kourge 寫: 有。
this.method1(); 謝謝,但是 console 指出 method1 不是函式。 可能是我的寫法有問題,附上原檔案以供參考。(大概在第 75 行)
|
發表人: | Mask [ 2006-07-23, 17:50 ] |
文章主題 : | |
有找到呼叫方法了,是用 class.method1(); 請問還有更簡潔的方法嗎?我看了不少 library / framework 眼睛都花了 @.@ |
發表人: | kourge [ 2006-07-25, 12:43 ] |
文章主題 : | |
啊,我知道為什麼了。 因為你是在 event 發生的時候去呼叫 Class.method1(),所以他的 this 指到的是發出 event 的 element。 這是所謂人稱 "scope" 的問題。 修理的方法如下... 把三個 addEvent 改成下列... addEvent(objS[i], "mousedown", me.mouseDown.apply(me)); addEvent(objS[i], "mousemove", me.mouseMove.apply(me)); addEvent(objS[i], "mouseup", me.mouseUp.apply(me); 這樣應該可以了。 當你把像這種 Class 樣式的結構套到 event 上常常會出這種問題。 |
發表人: | 訪客 [ 2006-07-26, 17:51 ] |
文章主題 : | |
太感謝了,幫我釐清了一個觀念 |
發表人: | Mask [ 2006-07-26, 18:36 ] |
文章主題 : | |
Anonymous 寫: 太感謝了,幫我釐清了一個觀念
抱歉,在公司沒登入,這是我留的 |
第 1 頁 (共 1 頁) | 所有顯示的時間為 UTC + 8 小時 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |