从字符串和解析变量运行函数

Run function from string and parse variable?

本文关键字:运行 函数 变量 字符串 和解      更新时间:2023-09-26

假设我有一个这样标记的对象:

var obj = {
    cat: function(string, bool, NEEDTHIS) {
        console.log(string, bool, NEEDTHIS);
    }
}

假设我有这个函数,它的变量作为一个按钮的属性,我没有控制它是如何生成的。例子:

<button type="button" onclick="obj.cat('foo', true, 'dog');">PRINT</button>

我需要在按钮上运行这个函数,但是要删除这个属性,以便我可以解析我自己的属性。

所以我将剥离属性'onclick',将其存储在一个字符串中,像这样:

var function = "obj.cat('foo', true);";

当然有一种方法可以在不改变字符串的情况下添加另一个参数。

我也卡住了我如何运行函数,因为它是从字符串。

这可能吗?

use eval

var function = "obj.cat('foo', true);";
eval(function);