使用函数作为参数 - 问题

时间:2015-01-10 10:36:02

标签: javascript

我在JS中有以下代码:

if (Subs.Lsr!==null) {
   Subs.Measure.Do("markLSRPosts",function() {
      Subs.Lsr.Dom($ce);
   });
}

因为这种代码多次出现在我的文件中,所以我想为它创建一个函数:

function SingleMeasure(measureTitle, functionName) {
    if (setting!==null) {
        Subs.Measure.Do(measureTitle,function() {
            functionName();   
        });
    }
}
SingleMeasure(Subs.Lsr, "markLSRPosts", Subs.Lsr.Dom($ce));

现在我的问题是函数Subs.Lsr.Dom($ce)在我SingleMeasure()之前被调用 - 函数被调用(所以总是如此,无论setting的条件是什么)。

我必须承认:这对编码逻辑来说很有意义。尽管如此,我想知道是否还有另一种方法可以达到我的目的。 (仅在满足...Dom() - 条件时才调用方法setting

1 个答案:

答案 0 :(得分:2)

  

现在我的问题是在我的SingleMeasure()之前调用Subs.Lsr.Dom($ ce)函数

那是因为你在这里打电话:Subs.Lsr.Dom($ce)

SingleMeasure(Subs.Lsr, "markLSRPosts", Subs.Lsr.Dom($ce));

您可以将其作为匿名函数传递:

SingleMeasure(Subs.Lsr, "markLSRPosts", function() { 
    Subs.Lsr.Dom($ce); 
});

您的SingleMeasure功能将在稍后阶段调用回调。