2010-03-26 70 views
0

我在Javscript中使用原型Class.Create創建了一個完整的初始化函數和一些其他函數。但是,在我的一個函數中,我想引用同一個類中的另一個函數,但似乎無法獲得正確的語法。在同一個JavaScript類中調用方法[原型]

例如我試過調用functionA(),this.functionA(),但沒有任何工作,我只是得到錯誤。我知道如何在類實例化時從外部調用函數,但不能從類本身中引用函數。

感謝

回答

3

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); 
1

同意bobince,除了你」我們希望使用Event.observe()語法來附加事件處理程序,而不是分配給元素的onclick屬性。示例:

element.observe('click', this.functionB.bind(this)); 
相關問題