0

如何在 JavaScript 中将函数作为参数传递。

在下面的代码中,如果我调用whatMustHappen (TWO(),ONE()),我希望它们按照函数的顺序排列xywhatMustHappen

现在它在参数中看到它会触发。

var ONE = function() {
    alert("ONE");
}
var TWO = function() {
    alert("TWO");
}
var THREE = function() {
    alert("THREE");
}
var whatMustHappen = function(x, y) {
    y;
    x;
}
whatMustHappen(TWO(), null);
whatMustHappen(TWO(), ONE());
4

3 回答 3

2
var whatMustHappen = function(x, y) {
        if (y) y();
        if (x) x();
    }
whatMustHappen(TWO, null);
whatMustHappen(TWO, ONE);
于 2012-07-19T10:22:24.467 回答
2

()调用一个函数并返回其结果。要传递一个函数,您只需像传递任何其他变量一样传递它:

whatMustHappen(TWO, ONE);

whatMustHappen函数中,您可以调用它们:

var whatMustHappen = function(x, y) {
        if( y ) y();
        if( x ) x();
    }
于 2012-07-19T10:22:29.633 回答
0

如果你想传递一个函数,不要调用它(用(args))。

function foo () {
    alert("foo");
}

function bar (arg) {
    alert("Function passed: " + arg);
    arg();
}

bar(foo);
于 2012-07-19T10:22:36.793 回答