Javascript eval() 用于带参数的函数

发布于 2024-09-27 15:39:36 字数 280 浏览 3 评论 0原文

我该怎么做?

function myUIEvent() {
    var iCheckFcn = "isInFavorites";
    var itemSrc = ui.item.find("img").attr("src");

    if (eval(iCheckFcn(itemSrc))) { alert("it's a favorite"); }

function isInFavorites(url) { return true; } // returns boolean

How do I do this?

function myUIEvent() {
    var iCheckFcn = "isInFavorites";
    var itemSrc = ui.item.find("img").attr("src");

    if (eval(iCheckFcn(itemSrc))) { alert("it's a favorite"); }

function isInFavorites(url) { return true; } // returns boolean

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

宁愿没拥抱 2024-10-04 15:39:36

首先,不要使用eval()

function myUIEvent() {
  var iCheckFcn = isInFavorites;
  var itemSrc = ui.item.find("img").attr("src");

  if (iCheckFcn(itemSrc)) { alert("it's a favorite"); }
}

函数是对象,您可以将对函数的引用分配给任何变量。然后您可以使用该引用来调用该函数。

Don't use eval(), first of all.

function myUIEvent() {
  var iCheckFcn = isInFavorites;
  var itemSrc = ui.item.find("img").attr("src");

  if (iCheckFcn(itemSrc)) { alert("it's a favorite"); }
}

Functions are objects, and you can assign a reference to a function to any variable. You can then use that reference to invoke the function.

南薇 2024-10-04 15:39:36

最好的方法是 Pointy 所描述的,或者你也可以这样做:

if ( window[iCheckFcn](itemSrc) ) {
  alert("it's a favorite");
};

The best way is what Pointy described, or alternatively you could just do this:

if ( window[iCheckFcn](itemSrc) ) {
  alert("it's a favorite");
};
清醇 2024-10-04 15:39:36

如果你在 AngularJS 环境中,那就这么简单:

$rootScope.calculate = function(param1,param2)
{
    console.log(param1+param2);
}

var func = '$rootScope.calculate';
eval(func)(1,2);  //---> 3

If you are in AngularJS environment, its just that simple:

$rootScope.calculate = function(param1,param2)
{
    console.log(param1+param2);
}

var func = '$rootScope.calculate';
eval(func)(1,2);  //---> 3
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文