以下接缝工作,至少在通过控制台测试时,如果不是正确的做法,请告诉我:
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等)。 我们希望能够在没有任何中间功能的情况下完成此任务。
谢天谢地。
答案 0 :(得分:2)
我认为这不符合你没有中间函数的条件,但实现这个的简单方法是传递一个匿名函数:
function test1(x){
x();
}
function test2(p,r){
console.log('test2 fired - p: '+p+' | r: '+r);
}
test1(function() { test2('someP', 'someR'); });