我試圖將任意數量的參數傳遞給函數。參數應該是json類型[function:arrayOfArgs]。鍵是函數,值是參數的數組,應該傳遞給這些函數。將函數數組傳遞給另一個函數
起初,我認爲功能只有一些說法
function _gl(f,args){ f.apply(null,args); }
function func(a,b){ alert(a+b); }
//調用函數
<input type="button" value="test" onclick="_gl(func,['2','3']);"/>
和它的作品相當不錯。現在我想概括這種方法
function _GL(){
var arguments = _GL.arguments;
var i=0;
for(i;i<arguments.length;i++)
{
var A=arguments[i];
for(j in A) j.apply(null,A[j]);
}
}
//並調用它
<input type="button" value="TEST" onclick="_GL({func:['2','3']});"/>
但我收到以下錯誤「Uncaught TypeError:Object func has no method'apply'」。
'func'你傳遞的是Event對象,它不是一個函數,它爲什麼要這樣呢? – gdoron
您將數組'['2','3']'傳遞給屬性func。 – 0xcaff
'應該是json類型... ... JSON是數據的*字符串表示*。你的數組是*不是*「JSON類型」。這只是一個「正常」的JavaScript數組。如果它是JSON,它是一個字符串。如果它不是字符串,那不是JSON。 –