【发布时间】:2011-06-06 06:00:31
【问题描述】:
我有一个名为 deleteObjectsDependingOnX(objects, X) 的 Javascript 方法,是否将参数的顺序作为对象,然后是 X,或者相反?
这更多是关于 Javascript 中的约定的问题。我相信,在 C++ 中,约定是相反的,但不确定人们在 Javascript 中做什么。
【问题讨论】:
标签: javascript parameter-passing convention
我有一个名为 deleteObjectsDependingOnX(objects, X) 的 Javascript 方法,是否将参数的顺序作为对象,然后是 X,或者相反?
这更多是关于 Javascript 中的约定的问题。我相信,在 C++ 中,约定是相反的,但不确定人们在 Javascript 中做什么。
【问题讨论】:
标签: javascript parameter-passing convention
我认为 JavaScript 中没有关于此类事情的约定。
【讨论】:
如果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);
所以我认为真正的答案是“视情况而定”。如果您期望匿名函数比命名函数更频繁,那么将回调放在最后将使(恕我直言)更易于阅读代码。
【讨论】: