我该怎么做?
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
答案 0 :(得分:6)
首先不要使用eval()
。
function myUIEvent() {
var iCheckFcn = isInFavorites;
var itemSrc = ui.item.find("img").attr("src");
if (iCheckFcn(itemSrc)) { alert("it's a favorite"); }
}
函数是对象,您可以将函数的引用分配给任何变量。然后,您可以使用该引用来调用该函数。
答案 1 :(得分:2)
最好的方式是Pointy描述的,或者你可以这样做:
if ( window[iCheckFcn](itemSrc) ) {
alert("it's a favorite");
};
答案 2 :(得分:-1)
如果你在AngularJS环境中,就这么简单:
$rootScope.calculate = function(param1,param2)
{
console.log(param1+param2);
}
var func = '$rootScope.calculate';
eval(func)(1,2); //---> 3