我在Javscript中使用原型Class.Create創建了一個完整的初始化函數和一些其他函數。但是,在我的一個函數中,我想引用同一個類中的另一個函數,但似乎無法獲得正確的語法。在同一個JavaScript類中調用方法[原型]
例如我試過調用functionA(),this.functionA(),但沒有任何工作,我只是得到錯誤。我知道如何在類實例化時從外部調用函數,但不能從類本身中引用函數。
感謝
我在Javscript中使用原型Class.Create創建了一個完整的初始化函數和一些其他函數。但是,在我的一個函數中,我想引用同一個類中的另一個函數,但似乎無法獲得正確的語法。在同一個JavaScript類中調用方法[原型]
例如我試過調用functionA(),this.functionA(),但沒有任何工作,我只是得到錯誤。我知道如何在類實例化時從外部調用函數,但不能從類本身中引用函數。
感謝
this.functionA()
將是從同一個對象的另一種方法中調用對象的方法的正確方法。
但沒有任何工程我只是得到錯誤
什麼錯誤?如果您收到'property functionA not found',那麼概率是this
指向錯誤的地方。使用Firebug或一些alert
s來檢查它是什麼。一個常見的問題是,你已經從所有者對象分離方法的功能,並將其傳遞給別的東西:
element.onclick= this.functionB;
時functionB
叫回在這種情況下,this
將被取消設置和它的默認值(很幫倒忙,用於調試)到window
。發生這種情況的原因是JavaScript中的object.methodname
與許多其他現代腳本語言不同,它只給你一個未綁定的函數對象而不是綁定方法。
簡單的方法來保存this
,通過原型介紹,現在的JavaScript標準的一部分(即將在您附近的瀏覽器腳本引擎),是function.bind
:
element.onclick= this.functionB.bind(this);
同意bobince,除了你」我們希望使用Event.observe()語法來附加事件處理程序,而不是分配給元素的onclick屬性。示例:
element.observe('click', this.functionB.bind(this));