您有一個表示函數呼叫的字串,例如:
settings.functionName + '(' + t.parentNode.id + ')'
您想要將此字串轉換為實際的函數調用,但不使用eval。
您可以使用以下程式碼來取代使用eval:
var fn = window[settings.functionName]; if(typeof fn === 'function') { fn(t.parentNode.id); }
此程式碼:
考慮以下設定物件:
/* Somewhere: */ window.settings = { /* [..] Other settings */ functionName: 'clickedOnItem' /* , [..] More settings */ };
在程式碼的後面,定義了以下函數:
function clickedOnItem (nodeId) { /* Some cool event handling code here */ }
現在,您可以使用解決方案中提供的程式碼來進行函數呼叫:
/* Even later */ var fn = window[settings.functionName]; if(typeof fn === 'function') { fn(t.parentNode.id); }
這將導致以t.parentNode.id 作為參數呼叫clickedOnItem 函數。
以上是如何在 JavaScript 中將字串轉換為函數呼叫而不使用'eval”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!