【问题标题】:How to run a dynamically generated function stored in a variable in Javascript如何在Javascript中运行存储在变量中的动态生成的函数
【发布时间】:2014-11-26 10:39:00
【问题描述】:

我有一个从动态生成的 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;
       }

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

【问题讨论】:

  • 我不确定我是否明白了你的要求,但如果你想调用value 中的函数,然后像ui.item.value() 一样调用;
  • 不,这整件事:ui.item.value,有“var s = 'hey';$.check(s);”存储在其中。所以我想运行它。
  • eval(ui.item.value);
  • 啊,@CerlinBoss 您在我输入答案时输入了您的评论!对不起,伙计。
  • 这是有道理的。让我测试一下。

标签: javascript jquery variables var


【解决方案1】:

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

eval(ui.item.value);

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

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

【讨论】:

【解决方案2】:

很简单,只要做:

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

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

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

【讨论】:

  • 我不认为这会被视为一个函数,你正在检查它是否是一个函数,函数本身之前有变量。
  • 但是当您构建 var s$.check 时,只需将其包装在您的 value 中的一个函数中
猜你喜欢
  • 2019-07-03
  • 1970-01-01
  • 2013-08-11
  • 1970-01-01
  • 2021-08-29
  • 2022-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多