我寫了幾個函數 funA(x)、funB(x)、funC(x)、funD(x)、funE(x)、funF(x),我現在有個需求,根據某個參數str,實現不同的計算。比如當 str=‘abc’ 時,能執行 x→funA(x)→funB(x)→funC(x)→y ,當 str‘ace’ 時,能執行x→funA(x)→funC(x)→funE(x)→y 。function fun_abc(x){ var a = funA(x); var b = funB(a); var c = funC(b); var y = c;
return y;
}我知道可以寫一個 switch 根據 str 做 case,跳到不同的 fun_XXX() 中,但是這樣不靈活。我最終目的是希望有一個數組,數組中按順序寫著不同的函數名,調用時輸入x,從數組中第一個元素對應的函數一直運行到最后一個函數,輸出最終結果y。是否有其他辦法能簡寫?或者能做到自由組合,比如直接根據變量執行同名函數,類似 funstr='abc' 時,運行類似 funstr(x) 執行的就是 function abc(x)?js 或 php 相關語法都可以。
如何根據變量內容運行相應函數?
侃侃爾雅
2018-09-07 10:09:15