将函数传递给函数,以后用WITH参数执行?可以作为单个参数吗?

时间:2011-09-10 05:49:10

标签: javascript function

以下接缝工作,至少在通过控制台测试时,如果不是正确的做法,请告诉我:

function test1(x){
    x();
}

function test2(){
    console.log('test2 fired');
}

test1(test2);

将导致控制台输出:

test2 fired

假设上面的说法是正确的,我如何传入函数名WITH参数?他们需要单独传递吗?像这样:

function test1(x,p,r){
    x(p,r);
}

function test2(p,r){
    console.log('test2 fired - p: '+p+' | r: '+r);
}

虽然上面应该有效,但是作为'x'的一部分而不是作为单独的参数传递参数吗?

为了提供一些见解,我们要做的是基本上如果在“test1”中满足条件,执行一个带参数的函数。为了进一步简化,假设test1创建了一个DOM对象,我们想要将一个onerror属性附加到这个DOM对象。如果此DOM对象触发错误,则调用我们的ajax函数,该函数接受参数(url,querystring,method等)。 我们希望能够在没有任何中间功能的情况下完成此任务。

谢天谢地。

1 个答案:

答案 0 :(得分:2)

我认为这不符合你没有中间函数的条件,但实现这个的简单方法是传递一个匿名函数:

function test1(x){
    x();
}

function test2(p,r){
    console.log('test2 fired - p: '+p+' | r: '+r);
}

test1(function() { test2('someP', 'someR'); });