如何在 Javascript 中运行存储在变量中的动态生成的函数

How to run a dynamically generated function stored in a variable in Javascript

本文关键字:动态 函数 存储 Javascript 运行 变量      更新时间:2023-09-26

>我有一个从动态生成的html调用的函数,但它没有被执行

函数。

$.check = function(s){
alert (s);
} 

....然后。。。以下函数对象的内容值是上述函数的调用。

value is  var s = 'hey';$.check(s);
function( event, ui) {
//////The following does nothing, not even an error
      return ui.item.value;
       }

如何执行存储在"值"中的函数;

在浏览器中执行此操作的唯一方法是eval

eval(ui.item.value);

Node支持更高级的东西,如vm.runInNewContext(value,{/* context */})

但要小心,这是危险的。 https://www.google.com/?q=eval+is+evil

这很简单,只需执行以下操作:

function( event, ui) {
    if (typeof ui.item.value === 'function') {
        ui.item.value.call();
    }
}

将该var s创建为函数,如下所示:

ui.item.value = function () {
    var s = 'hey';
    $.check(s);
}