传递带有参数的函数作为JavaScript中另一个函数的参数
我希望将带有参数的函数传递给另一个函数,并让它在事件上运行,如下所示:传递带有参数的函数作为JavaScript中另一个函数的参数,javascript,function,object,methods,Javascript,Function,Object,Methods,我希望将带有参数的函数传递给另一个函数,并让它在事件上运行,如下所示: var main_object = function () { this.main_function = function (function) { document.addEventListener('click',function); } this.passed_function = function (variable) { alert(variable);
var main_object = function () {
this.main_function = function (function) {
document.addEventListener('click',function);
}
this.passed_function = function (variable) {
alert(variable);
}
}
var main_object = new main_object();
main_object.main_function(main_object.passed_function(3));
如果我没弄错的话
main_object.main_function(function() { main_object.passed_function(3) });
如果我没弄错的话
main_object.main_function(function() { main_object.passed_function(3) });
对于你所说的,你可以使用。在您的情况下,您将执行以下操作:
main_object.main_function(main_object.passed_function.bind( main_object, 3 ));
对于你所说的,你可以使用。在您的情况下,您将执行以下操作:
main_object.main_function(main_object.passed_function.bind( main_object, 3 ));
在现代JavaScript引擎中,您可以使用以下函数:
mainObject.main_function(main_object.passed_function.bind(main_object, 3));
当函数执行时,
bind
的第一个参数将是this
,而bind
的任何剩余参数将是函数调用中的前导参数。在现代JavaScript引擎中,您可以:
mainObject.main_function(main_object.passed_function.bind(main_object, 3));
function mainfunc(func) {
alert(func);
}
function callBackFn(a) {
alert(a);
}
当函数执行时,bind
的第一个参数将是this
,而bind
的任何剩余参数将是函数调用中的前导参数
function mainfunc(func) {
alert(func);
}
function callBackFn(a) {
alert(a);
}
当然可以,不用担心。。。但callbackFn将首先执行,下一步只执行“arg1”
当然可以,不用担心。。。但是callbackFn将首先执行,下一步只执行“arg1”。您应该用其他参数替换main_函数中名为“function”的参数。“function”是一个保留关键字。您应该将main_函数中名为“function”的参数替换为其他参数。“function”是一个保留关键字。为了兼容性,此链接提供了一些兼容代码:我将尝试一下,以确保我正确理解它。@JVE999-是的,感谢您指出兼容代码。这就是我的答案中的链接。谢谢我没有注意到它是一个链接,颜色类似于我屏幕上的常规文本颜色。为了兼容性,此链接提供了一些兼容代码:我将尝试一下,以确保我正确理解它。@JVE999-是的,感谢您指出兼容代码。这就是我的答案中的链接。谢谢我没有注意到它是一个链接,颜色与我屏幕上的常规文本颜色相似。这也是一个有用的答案。我要试试看。我猜这就是EventListener函数的工作原理。这也是一个有用的答案。我要试试看。我猜这就是EventListener函数的工作原理。哇,太有趣了。我不太清楚这是怎么回事。对于任何想知道的人来说,这是一个惊喜,非常有趣。我不太清楚这是怎么回事。对于任何想知道的人,这里有一个