Javascript方法参数排序

时间:2011-06-06 06:00:32

标签: javascript parameter-passing convention

我有一个名为deleteObjectsDependingOnX(objects,X)的Javascript方法,将参数的顺序首先作为对象,然后是X,还是反向?

这是一个关于Javascript约定的问题。我相信,在C ++中,惯例是反过来,但不确定人们在Javascript中做了什么。

2 个答案:

答案 0 :(得分:1)

我认为JavaScript中没有关于此类内容的约定。

答案 1 :(得分:1)

如果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);

所以我认为真正的答案是“它取决于”。如果您期望匿名函数比命名函数更频繁,那么将回调放在最后将使(IMHO)更容易阅读代码。