Javascript 如何将参数传递给callback和don';你不会迷失方向吗?
我有以下代码:Javascript 如何将参数传递给callback和don';你不会迷失方向吗?,javascript,jquery,callback,argument-passing,Javascript,Jquery,Callback,Argument Passing,我有以下代码: $.getJSON('getAllTerminals.json', renderTerminalsOnMapAndFitBounds.bind({index:globalRequestCounter++, navigateToTypedText:true})) ... function renderTerminalsOnMapAndFitBounds(data, updateSelectedTerminals) { renderTerminalsOnMap.ca
$.getJSON('getAllTerminals.json', renderTerminalsOnMapAndFitBounds.bind({index:globalRequestCounter++, navigateToTypedText:true}))
...
function renderTerminalsOnMapAndFitBounds(data, updateSelectedTerminals) {
renderTerminalsOnMap.call(this,data);
fitBounds();
if(this.navigateToTypedText === true){
navigateMapToTypedAdress();
}
if (updateSelectedTerminals) {
$.getJSON('getSelectedTerminals', {}, function (json) {
window.MARC.addTerminalPage.terminalsSelected = json;
update();
initPage();
});
}
}
你能告诉我如何使所有的工作都像现在一样,但to
renderTerminalsOnMapAndFitBounds
被传递更新SelectedTerminals
为true吗?不,你不能使用绑定
来部分应用非初始参数(并且没有翻转
)。只需使用函数表达式:
$.getJSON('getAllTerminals.json', function(data) {
renderTerminalsOnMapAndFitBounds.call({
index:globalRequestCounter++,
navigateToTypedText:true
}, data, true);
});
如果必须使用bind,请更改
renderTerminalsOnMapAndFitBounds
的参数顺序,或者让它接受updateSelectedTerminals
参数作为这个
对象的属性。有时候匿名函数会让事情变得简单得多。@adeneo它是现有的工作代码,我想在不使用全局变量的情况下进行最小的代码更正refactoring@gstackoverflow:不需要全局重构。请参阅Bergi的答案,了解adeneo使用匿名函数的含义。您可以使用下划线部分应用非初始参数。@mAAdhaTTah:是的,当然可以使用任何类型的帮助函数:-)我只是指内置函数。不用担心,注释只是为了防止OP不知道它们。