我有一个函数callWithMagic,它将一个回调函数作为参数,并用一个参数调用它.
const callWithMagic = callback => {
const magic = getMagic();
callback(magic);
};
Run Code Online (Sandbox Code Playgroud)
我还有一个函数processMagic,它有两个参数:magic和theAnswer.
const processMagic = (magic, theAnswer) => {
someOtherMagic();
};
Run Code Online (Sandbox Code Playgroud)
我想将函数processMagic作为参数传递给callWithMagic,但我也希望42将第二个参数传递theAnswer给processMagic.我怎样才能做到这一点?
callWithMagic(<what should I put here?>);
Run Code Online (Sandbox Code Playgroud) 我似乎是徒劳无功地将其他参数传递回我为成功的ajax调用创建的成功回调方法.一点背景.我有一个页面,其中包含许多动态创建的文本框/选择框对.每对具有动态分配的唯一名称,例如name ="unique-pair-1_txt-url"和name ="unique-pair-1_selectBox",则第二对具有相同但前缀不同.
为了重用代码,我制作了回调来获取数据和对selectbox的引用.但是当回调被触发时,对selectbox的引用将返回为"undefined".我在这里读到它应该是可行的.我甚至尝试过利用'上下文'选项,但仍然没有.这是我尝试使用的脚本块:
<script type="text/javascript" language="javascript">
$j = jQuery.noConflict();
function getImages(urlValue, selectBox) {
$j.ajax({
type: "GET",
url: $j(urlValue).val(),
dataType: "jsonp",
context: selectBox,
success:function(data){
loadImagesInSelect(data)
} ,
error:function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
function loadImagesInSelect(data) {
var select = $j(this);
select.empty();
$j(data).each(function() {
var theValue = $j(this)[0]["@value"];
var theId = $j(this)[0]["@name"];
select.append("<option value='" + theId + "'>" + theValue + "</option>");
});
select.children(":first").attr("selected", true);
}
</script>
Run Code Online (Sandbox Code Playgroud)
从我所读到的,我觉得我很接近,但我不能把手指放在缺失的环节上.请帮助你典型的忍者隐身方式.TIA
****更新****尼克是一个真正的忍者.他们应该为此发明一个新的徽章!他下面的回答就是诀窍.正如他提到的那样具体是1.4,但我可以忍受.这是我的最终代码,适用于任何Ninjas的培训(以及我未来的参考):
<script type="text/javascript" language="javascript">
$j = jQuery.noConflict(); …Run Code Online (Sandbox Code Playgroud)