如何干掉类似的函数调用

时间:2014-03-29 14:12:38

标签: javascript jquery

我想在javascript插件中调用一个函数:

var display = function(overlay, overlay_color, modal, opacity, drag)    {
      //some stuff
}

我目前正在调用此函数:

if (ajax) {
    modal.waitUntilExists(function() {
        load();
        display($("#lean_overlay"), options.overlay_color, $(options.modal_id), options.overlay, options.drag);
    });
} else {
     display($("#lean_overlay"), options.overlay_color, $(options.modal_id), options.modal, options.overlay, options.drag);
}

问题是如何干掉display功能的触发?我正在考虑将函数拆分为initfire方法(不确定是否正确的术语) - 调用方法一次,并相应地触发。

非常感谢任何信息,谢谢!

1 个答案:

答案 0 :(得分:1)

如果您经常使用(部分)相同参数的函数,则可以使用partial。由于函数是Javascript中的一等公民,因此非常适合这样做functional programming

在您的情况下,您可以在if语句之前创建一个:

var partial = display.bind(null,
                           $("#lean_overlay"),
                           options.overlay_color, 
                           $(options.modal_id),
                           options.overlay,
                           options.drag);

然后使用新创建的partial()

http://lostechies.com/derickbailey/2012/07/20/partially-applied-functions-in-javascript/

PS“partial”是一个可怕的函数名unless the function returns a partial。使用更好的东西描述部分的作用,比如你的“火”。