gpt4 book ai didi

javascript - 使用传递给函数的参数作为变量名

转载 作者:行者123 更新时间:2023-11-29 10:17:59 26 4
gpt4 key购买 nike

我是 JS 新手,如果我错过了明显的内容,但我所做的搜索未能检索到对我有意义的任何内容,我深表歉意。

我一直在尝试使用一个传递给函数的参数,该函数进行 ajax 调用,作为数据应该去向的变量的名称。例如:

ajaxFun("[url loctaion].json?callback=?","main","mainData");

想法是检索到的 JSON 对象然后可以使用“mainData”变量访问,但是我不能显式使用它,因为我有另一个文件要检索,应该可以在变量名“expData”下访问。这两个都是全局变量,在页面加载时已经声明。

下面是当前有效的代码,但我想抽象掉 ajax 调用成功部分中的“if、else if、else” block :

    function ajaxFun(urlS,jsonpCallbackS,dataSource){
$.ajax({
type: "GET",
url: urlS,
async: false,
jsonpCallback: jsonpCallbackS,
contentType: "application/json",
dataType: "jsonp",
cache: false,
success: function(source){
if(dataSource === "expData"){
expData = source;
}
else if(dataSource === "mainData"){
mainData = source;
}
else{
console.log('data not set');
}
},
error: function(classData){
console.log('error');
}
});
}

我尝试了各种方法,包括使用 eval() 并将结果附加到对象:

var dataCon = {};

function ajaxFun(urlS,jsonpCallbackS,dataSource){
$.ajax({
type: "GET",
url: urlS,
jsonpCallback: jsonpCallbackS,
contentType: "application/json",
dataType: "jsonp",
cache: false,
success: function(source){
var name = dataSource;
alert(name);
dataCon.name = source;
},
error: function(classData){
console.log('error');
}
});
}

使用:

'ajaxFun("[url loctaion].json?callback=?","main","mainData");'

我收到“mainData”警报,但在 dataCon 的 console.log 中,我可以看到“source”的值已放入名为“name”的键中。

最佳答案

试试这个:

window[dataSource]

这将获取您拥有的字符串中的变量值。例如:

dataSource = "something"
something = 5
alert(window[dataSource]) // alerts 5

关于javascript - 使用传递给函数的参数作为变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17528483/

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