2012-06-20 83 views
2

我試圖將所有函數參數推送到數組,其中一個參數是函數,我不能這樣做,因爲在將函數推入數組之後,我在這個位置有空值 我有以下問題,我有:JavaScript,將數組推入函數

var someFunction1 = function(someValue, callback) 
{ 
    // I CAN DO THIS, CALL HERE CALLBACK 

    callback(); 

    // OR PASS CALLBACK TO ANOTHER FUNCTION AND CALL 

    // BUT WHEN I'M TRYING THIS: 

    var someArray = []; // OR new Array() ... 
    someArray.push(someValue); 
    someArray.push(callback); 

    console.log(someArray); // <--- THIS WILL GIVE ME ["EXAMPLE",null] to console 
} 

var someFunction2 = function() 
{ 
     var callbackFunction = function() 
     { 
     console.log("SOME TEXT"); 
     } 

     someFunction1("EXAMPLE", callbackFunction); 
} 

爲什麼我不能將此回調函數推入數組?

現在請幫助:)

我chceck的IOS(PhoneGap的項目)這個問題,當我嘗試:

var array = []; 
    array.push(function(){console.log("TEST");}); 
    console.log(array); 

然後我得到的結果[空] - >但是這個的jsfiddle工作(也OSX Safari和IOS的Safari):(

+6

該代碼工作正常http://jsfiddle.net/MQzfM/ – Esailija

+0

@ Ri100:在什麼情況下代碼失敗? (瀏覽器,版本,操作系統等)。看起來像代碼在大多數環境中工作。 – jsalonen

+0

我正在爲IOS的phoneGap編寫應用程序 這不完全相同的代碼,我在應用程序中,也許錯誤,我粘貼從我的應用程序的tommorow早上代碼,有沒有工作。 – Ri100

回答

0

問題解決了:

這通常是PhoneGap的控制檯上的一些問題

當我登錄的對象,如:

console.log(function(){ /... CODE .../}); 

那麼一切都很好,但推功能陣列後,我得到「空」 但我檢查了一步,我試試這個:

array[0](); //and function was called successfully :) 

它的奇怪和有點令人困惑,但PhoneGap控制檯無法登錄函數後推到陣列和日誌'空'。