0

我想将一个带参数的函数传递给另一个函数并让它在一个事件上运行,如下所示:

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));
4

4 回答 4

2

在现代 JavaScript 引擎中,您可以bind使用以下功能:

mainObject.main_function(main_object.passed_function.bind(main_object, 3));

的第一个参数bind将是this函数执行的时间,任何剩余的参数都bind将是函数调用中的前导参数。

于 2013-10-27T17:28:28.410 回答
1

如果我没听错的话,

main_object.main_function(function() { main_object.passed_function(3) });
于 2013-10-27T17:27:19.280 回答
1

对于您正在谈论的内容,您可以使用bind. 在你的情况下,你会这样做:

main_object.main_function(main_object.passed_function.bind( main_object, 3 ));
于 2013-10-27T17:28:24.670 回答
0
function mainfunc(func) {
    alert(func);
}

function callBackFn(a) {
    alert(a);
}

 

mainfunc("arg1", callBackFn("javaScritFnParameter"));  //call this in load

确定它可以工作,无需担心......但 callbackFn 将首先执行,接下来只有“arg1”将执行。

于 2014-03-09T10:17:39.597 回答