gpt4 book ai didi

javascript - 将变量传递给引用的函数?

转载 作者:行者123 更新时间:2023-11-30 10:39:47 25 4
gpt4 key购买 nike

我目前在 javascript ajax 调用中有一个无名函数:

(这段代码已经精简,可能会有一些错误)

function call(name){
var type = services[name].type


$.oajax({
success: function(data) {
fbposts=data.data
if (type === "grupp"){
var postid=fbposts[fbpost].id.split("_");
return "https://www.facebook.com/groups/"+postid[0]+"/permalink/"+postid[1]+'/'
}
else if (fbposts[fbpost].actions){
return fbposts[fbpost].actions[0].link;
}
}
}
})
};

我想去insead用

success: successfunction,

并像这样引用函数:

function success(data) {
fbposts=data.data
if (type === "grupp"){
var postid=fbposts[fbpost].id.split("_");
return "https://www.facebook.com/groups/"+postid[0]+"/permalink/"+postid[1]+'/'
}
else if (fbposts[fbpost].actions){
return fbposts[fbpost].actions[0].link;
}
}
}
})

此时,类型变量不再定义。我能以某种方式解决这个问题吗?

最佳答案

一种可行的方法是在 $.ajax 上使用 context 参数——例如:

function successFunction(data) {
fbposts=data.data;
if (type === "grupp"){
var postid=fbposts[fbpost].id.split("_");
return "https://www.facebook.com/groups/"+postid[0]+"/permalink/"+postid[1]+'/'
}
else if (fbposts[fbpost].actions){
return fbposts[fbpost].actions[0].link;
}
}

function call(name){
var type = services[name].type;
$.oajax({
success: successFunction,
context: { type: type }
);
}

使用 context 会导致 success 函数中的 this 指向您为 context 传入的任何内容。所以在上面的例子中,当我们在 successFunction 中读取

if (type ...)

这意味着 type 指的是 this.type,它与我们保存到 context 中的 type 的值相同call 中。

关于javascript - 将变量传递给引用的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11757601/

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