gpt4 book ai didi

javascript - 如何避免使用eval调用不同的函数

转载 作者:行者123 更新时间:2023-11-28 14:23:52 24 4
gpt4 key购买 nike

我有这段包含 eval 的代码,因为我发现调用不同的工厂函数来进行不同的 Web 服务调用是最简单的。

我读到这不是安全且“适当”的做法。好吧,我无法思考或找到更好的方法来满足我的需要。

我怎样才能改进通话?

vm.saveRecord = function() {
var service = '';

if(vm.valueTrue) {
service = vm.otherValue ? 'function1' : 'function2';
} else {
service = vm.otherValue ? 'function3' : 'function4';
}

eval(service).callEndPoint(param1, param2).then(
function successCallback(response) {
if(response) {
//successful response
}
}, function errorCallback(response) {
//error
}
)
};

最佳答案

您可以使用函数句柄来执行函数。这将是对该函数的引用:

//existing functions
function one() { console.log("one") };
function two() { console.log("two") };
function three() { console.log("three") };

//function that will execute other functions
function exec(number) {
//we will assign a function here
let toExecute;

//simple condition to choose the function to execute at the end
if (number == 1) {
toExecute = one;
} else if (number == 2) {
toExecute = two;
} else if (number == 3) {
toExecute = three;
}

//adding () executes whatever function is assigned to the variable
toExecute();
}


exec(3);
exec(2);
exec(1);

关于javascript - 如何避免使用eval调用不同的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54349211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com