使用函数作为参数 - 问题

using function as parameter - issues

本文关键字:参数 问题 函数      更新时间:2023-09-26

我在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的条件是什么)。

我不得不承认:这对我来说从编码逻辑上是有意义的。尽管如此,我想知道是否有另一种方法可以实现我想要的。(该方法仅在满足setting条件时...Dom()调用)

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

那是因为你在这里称呼它:Subs.Lsr.Dom($ce)

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

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

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

回调将在稍后阶段由您的SingleMeasure函数调用。