Javascript 如何生成动态函数?
我有10个类似的功能:Javascript 如何生成动态函数?,javascript,jquery,function,loops,dynamic-function,Javascript,Jquery,Function,Loops,Dynamic Function,我有10个类似的功能: function instagram_ajax(){ return ajaxRequest('search/instagramid', 'instagramid').then( function(res) { var imgStatus = res[1].length > 0 ? "checked_successfully.png" : "checked_noRes.png"; $('.opti
function instagram_ajax(){
return ajaxRequest('search/instagramid', 'instagramid').then(
function(res) {
var imgStatus = res[1].length > 0 ? "checked_successfully.png" : "checked_noRes.png";
$('.option_name_instagramid + td').html("<img src='img/" + imgStatus + "' />")
optionsRes['instagramid'] = res[1];
}, function(err){
$('.option_name_instagramid + td').html("<img src='img/warning.png' />")
}
);
}
function googleplus_ajax(){
return ajaxRequest('search/googleplusid', 'googleplusid').then(
function(res) {
var imgStatus = res[1].length > 0 ? "checked_successfully.png" : "checked_noRes.png";
$('.option_name_googleplusid + td').html("<img src='img/" + imgStatus + "' />")
optionsRes['googleplusid'] = res[1];
}, function(err){
$('.option_name_googleplusid + td').html("<img src='img/warning.png' />")
}
);
}
.
.
.
现在我想知道,是否有可能动态生成这些数组?我的意思是把一个可变基函数放到一个循环中,然后用这个数组生成所有这些函数?这样的事情可能吗?制作一个包装器函数
function ajax(str) {
return function() {
return ajaxRequest('search/'+str+'id', ''+str+'id').then(
function(res) {
var imgStatus = res[1].length > 0 ? "checked_successfully.png" : "checked_noRes.png";
$('.option_name_'+str+'id + td').html("<img src='img/" + imgStatus + "' />")
optionsRes[str+'id'] = res[1];
}, function(err){
$('.option_name_'+str+'id + td').html("<img src='img/warning.png' />")
}
);
}
}
var instagram_ajax = ajax('instagram');
var googleplus_ajax = ajax('googleplus');
函数ajax(str){
返回函数(){
返回ajaxRequest('search/'+str+'id','+str+'id')。然后(
功能(res){
var imgStatus=res[1]。长度>0?“已成功选中\u.png”:“已选中\u noRes.png”;
$('.option_name_'+str+'id+td').html(“”)
选项res[str+'id']=res[1];
},函数(err){
$('.option_name_'+str+'id+td').html(“”)
}
);
}
}
var instagram_ajax=ajax(“instagram”);
var googleplus_ajax=ajax(“googleplus”);
还是你的案子
var parts = ['instagram', 'googleplus', 'linkedin', 'facebook'];
var funcs = {};
for (var i = 0; i < parts.length; i++)
funcs[parts[i]] = ajax(parts[i]);
// now u do
funcs.instagram()
var parts=['instagram'、'googleplus'、'linkedin'、'facebook'];
var funcs={};
对于(变量i=0;i
制作包装器函数
function ajax(str) {
return function() {
return ajaxRequest('search/'+str+'id', ''+str+'id').then(
function(res) {
var imgStatus = res[1].length > 0 ? "checked_successfully.png" : "checked_noRes.png";
$('.option_name_'+str+'id + td').html("<img src='img/" + imgStatus + "' />")
optionsRes[str+'id'] = res[1];
}, function(err){
$('.option_name_'+str+'id + td').html("<img src='img/warning.png' />")
}
);
}
}
var instagram_ajax = ajax('instagram');
var googleplus_ajax = ajax('googleplus');
函数ajax(str){
返回函数(){
返回ajaxRequest('search/'+str+'id','+str+'id')。然后(
功能(res){
var imgStatus=res[1]。长度>0?“已成功选中\u.png”:“已选中\u noRes.png”;
$('.option_name_'+str+'id+td').html(“”)
选项res[str+'id']=res[1];
},函数(err){
$('.option_name_'+str+'id+td').html(“”)
}
);
}
}
var instagram_ajax=ajax(“instagram”);
var googleplus_ajax=ajax(“googleplus”);
还是你的案子
var parts = ['instagram', 'googleplus', 'linkedin', 'facebook'];
var funcs = {};
for (var i = 0; i < parts.length; i++)
funcs[parts[i]] = ajax(parts[i]);
// now u do
funcs.instagram()
var parts=['instagram'、'googleplus'、'linkedin'、'facebook'];
var funcs={};
对于(变量i=0;i
很有可能,只需将变量作为参数传递给函数,并为数组中的每个项创建一个循环,使用不同的参数调用同一个函数。这只是一个更正:传递参数,而不是参数。参数永远不会改变,参数会改变。很有可能,只需将变量作为参数传递给函数,并为数组中的每个项创建一个循环,用不同的参数调用同一个函数。只是一个更正:传递参数,而不是参数。参数永远不会改变,参数会改变。我只是不明白这一行funcs.instagram(…params)
。那是干什么用的?我只是不懂这行funcs.instagram(…params)
。那是干什么用的?