2014-02-21 43 views
0

我很抱歉,如果這已被問到其他地方,我看,但不知道我在做什麼的名字,我什麼都找不到。Javascript可變函數方法調用

不管怎樣,代碼如下:

function alertTypeOptions(AlertType, AlertOptions) { 
    navigator.notification.AlertType(AlertOptions); 
} 

此代碼爲的PhoneGap /科爾多瓦應用。

其基本思想是將函數傳遞給兩個變量,這些函數用於執行相應的方法。這個例子可以是alertTypeOptions('beep','3')或alertTypeOptions('vibrate','2000')。此(應該)播放默認提示音3倍或振動手機2秒鐘。

我目前收到以下錯誤:

02-21 15:36:07.185: E/Web Console(7206): Uncaught TypeError: 
Object #<Object> has no method 'AlertType' 
at file:///android_asset/www/res/scripts.js:181 

顯然,這個功能目前只是用書面,而不是作爲一個變量的AlertType變量。

有沒有辦法讓這個工作優雅?目前我唯一的想法是使用帶有AlertType的switch語句作爲檢查。

傑克

+0

什麼alertoptions? –

+0

這取決於正在調用的方法。如果振動,手機應該振動的時間長度。詳細信息在這裏:http://docs.phonegap.com/en/3.3.0/cordova_notification_notification.md.html – Jack

回答

0

它看起來像你想使用bracket notation來訪問你的函數:

navigator.notification[AlertType](AlertOptions); 

或者說,如果我相信this documentation如果AlertOptions是一個數組:

navigator.notification[AlertType].apply(navigator, AlertOptions); 
+0

謝謝。相當肯定它會是簡單的,我只是不知道該找什麼。 當定時器啓動時,我會接受你的回答 – Jack

+0

@Jack你檢查了嗎? Id在文檔中沒有看到傳遞選項對象的可能性。 –

+0

它與當前設置一起工作,我只是讀入數組的可能性 – Jack