我有一个名为deleteObjectsDependingOnX(objects,X)的Javascript方法,将参数的顺序首先作为对象,然后是X,还是反向?
这是一个关于Javascript约定的问题。我相信,在C ++中,惯例是反过来,但不确定人们在Javascript中做了什么。
答案 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)更容易阅读代码。