将函数传递给特定对象

时间:2018-05-02 19:21:02

标签: javascript jquery

这是我想做的事情之一,但我不确定它叫什么......

希望有人可以提供帮助!

我有以下功能:

function myfunction(object1, object2) { ... }

我想使用 .click 方法将另一个函数传递给object1。

我可以使用以下函数在函数中只使用一个对象轻松地使用它:

function myFunction(object1) { ... }

$('button').click(function() {
    // Passes along another function!
    myFunction(anotherFunction());
});

当有2个物体时,有人会如何处理?我似乎无法得到任何工作。有任何想法吗?或者我是以错误的方式接近这个?

2 个答案:

答案 0 :(得分:0)

更新了答案

假设:

function myFunction( function, anotherFunction, ... ) { ... }

如果你想传递特定的参数但是能够省略参数,你可以提供一个参数但是把它当作假的:

myFunction( null, someOtherFunction, maybeAnotherFunction )

然后你需要处理null,或许:

function myFunction( function, anotherFunction, ... ) {
    let fnc = function;
    let fnc2 = anotherFunction;
    let ... = ...;


    if(fnc) ...
    if(fnc2) ...
    if(...) ...      

    ...
}

原始答案

因为你在传递过程中立即触发了这个功能,所以你可能真的想在没有初始化的情况下发送它。试试下面的内容,看看这是否适合你。

function myFunction(object1, object2) {
    object1()
    object2()
}

$('button').click(function() {
    // Passes along another function!
    myFunction(anotherFunction1, anotherFunction2);
});

答案 1 :(得分:0)



var a = 5,
    b = 2;

function check(val1, val2) {
    console.log(val1);
    console.log(val2);
}

function add() {
    return a + b;
}

function mulitply() {
    return a * b;
}

check(add, mulitply); // this will send refernce of function's not output

check(add(), mulitply()); // this will converts into like this check(7,10);