javascript - JS - 如何将函数作为参数(带参数)传递而不调用它

标签 javascript

我有这个方法:

myFunction: function(a,b,c) { 
   ... 
}

现在,我想将其作为参数传递给另一个方法,以便可以在该方法内执行它:

...
var a = "bla";
var b = "ble";
var c = "bli";
someFunction(myFunction(a,b,c),true,"test");

然后在 someFunction 中我想调用 myFunction,如下所示:

someFunction: function(func,bool,str){
   func();
}

这可能吗?

谢谢

最佳答案

是的,但是您必须创建一个进行函数调用的函数,即 bind (又名“curry”)带有参数的函数引用:

someFunction(myFunction.bind(this, a, b, c), true, "test");

一些较旧的浏览器(例如 IE 8)不支持 bind 方法,但您可以使用函数表达式执行基本相同的操作:

someFunction(function() { myFunction(a, b, c); }, true, "test");

如果您使用 jQuery,则有 $.proxy method它负责使其独立于浏览器:

someFunction($.proxy(myFunction, this, a, b, c), true, "test");

关于javascript - JS - 如何将函数作为参数(带参数)传递而不调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32589597/

相关文章:

javascript - FileReader 没有使用 AngularJS 正确加载文件

javascript - javascript 引擎解释对象字面量时发生了什么?

如果 Django 表单缺少字段,则 JavaScript 警报框

javascript - 统一 JS 单选按钮不改变状态

javascript - 显示 map ,同时通过 ajax/php 从数据库检索坐标

javascript - 为什么我的 jQuery 不能通过动画改变来改变我的 div 的背景颜色?

javascript - 为什么有些球显示它们发生了碰撞,而有些却没有?

javascript - 如何通过 AJAX 验证阻止表单提交

javascript - 多次订阅可观察的 rxjs

javascript - 使用 pdfMake 下载多个文件