【问题标题】:Javascript method parameter orderingJavascript方法参数排序
【发布时间】:2011-06-06 06:00:31
【问题描述】:

我有一个名为 deleteObjectsDependingOnX(objects, X) 的 Javascript 方法,是否将参数的顺序作为对象,然后是 X,或者相反?

这更多是关于 Javascript 中的约定的问题。我相信,在 C++ 中,约定是相反的,但不确定人们在 Javascript 中做什么。

【问题讨论】:

    标签: javascript parameter-passing convention


    【解决方案1】:

    我认为 JavaScript 中没有关于此类事情的约定。

    【讨论】:

      【解决方案2】:

      如果X 是一个回调函数,那么把它放在最后似乎更常见,并且(恕我直言)更容易阅读这样的代码:

      deleteObjectsDependingOnX(objects, function(o) {
          // return true if o should die, false otherwise
      });
      

      “最后的回调”是非常常见的 jQuery,请参阅 $.each$.grep 示例。

      当然,setTimeout 将参数按其他顺序排列,因此时间值可能会丢失:

      setTimeout(function() {
          // Do a bunch of stuff and things.
      }, 500);
      

      OTOH,如果您使用命名函数而不是匿名函数,它看起来还可以:

      setTimeout(doStuffAndThings, 500);
      

      所以我认为真正的答案是“视情况而定”。如果您期望匿名函数比命名函数更频繁,那么将回调放在最后将使(恕我直言)更易于阅读代码。

      【讨论】:

        猜你喜欢
        • 2022-01-17
        • 1970-01-01
        • 2022-01-17
        • 1970-01-01
        • 1970-01-01
        • 2014-02-02
        • 1970-01-01
        • 2022-01-03
        • 1970-01-01
        相关资源
        最近更新 更多