Maison > Article > interface Web > Comment convertir une chaîne en appel de fonction en JavaScript sans utiliser « eval » ?
Vous disposez d'une chaîne représentant un appel de fonction, telle que :
settings.functionName + '(' + t.parentNode.id + ')'
Vous souhaitez convertir cette chaîne en un véritable appel de fonction, mais sans utiliser eval.
Au lieu d'utiliser eval, vous pouvez utiliser le code suivant :
var fn = window[settings.functionName]; if(typeof fn === 'function') { fn(t.parentNode.id); }
Ce code :
Considérez l'objet de paramètres suivant :
/* Somewhere: */ window.settings = { /* [..] Other settings */ functionName: 'clickedOnItem' /* , [..] More settings */ };
Plus loin dans le code, la fonction suivante est définie :
function clickedOnItem (nodeId) { /* Some cool event handling code here */ }
Maintenant, vous pouvez utiliser le code présenté dans la solution pour effectuer un appel de fonction :
/* Even later */ var fn = window[settings.functionName]; if(typeof fn === 'function') { fn(t.parentNode.id); }
Cela entraînera l'appel de la fonction clickedOnItem avec le t.parentNode.id comme argument.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!