将函数作为参数传递给变量 - 可能吗?

时间:2012-05-07 21:13:51

标签: javascript

代码:

function remove_comment(){
    var id = "bla";
    Msg().prompt( "blabla" , function(){ Ajax().post( "id=" + id ) } , id );
}

Msg().prompt( txt , fn , args ){
    $( elem ).click( fn );
}

您可以注意到,我需要将此函数传递给prompt(),而在传递的函数中,其中一个参数取决于变量id

现在,在函数传递之后,我需要将它分配给元素的onclick事件(代码abode不使用jQuery)。

首先,我试图这样做: $( elem ).click( fn.apply( this , id ) );$( elem ).click( fn.call( id ) );,但这些代码立即执行该功能(我已经知道原因,无需解释)。 然后我尝试使用该函数并将其作为字符串排列,直接将onclick='THE_FUNCTION' html代码传递给元素,但没有成功。

2 个答案:

答案 0 :(得分:2)

在你的函数中使用JS方法callapply

答案 1 :(得分:2)

您可以将回调参数作为额外参数传递给提示函数,如下所示:

Msg().prompt( txt, fn, args[]);

然后在提示函数内使用apply

fn.apply(this, args);

更新:

试试这个:

$( elem ).click( {id: arg}, fn );

所以匿名应该是这样的:

Msg().prompt( "blabla" , function(e){ Ajax().post( "id=" + e.data.id ) } , id );

希望有所帮助