私は最近JavaScriptを調べていて、次のルーチンに出くわしました。誰かがそれがどのように機能するかを私に説明できますか?
function groupConsecutive(numbers, successor) {
successor || ( successor = function(n) { return n + 1; });
var groups = [];
return _.each(numbers, function(number) {
if (groups.length === 0) {
groups.push([number]);
} else {
successor.call(this, _.last(_.last(groups))) === number ? _.last(groups).push(number) : groups.push([number]);
}
}, this), groups;
}
具体的には、少し理解しようとしていsuccessor || {
ます。ここで「usestrict」を使用すると、「期待される代入または関数呼び出しで、代わりに式が表示されました」というエラーがスローされます。したがって、関数が呼び出される前にサクセサが定義されることはないため、そうすべきだと思います。したがって、ルーチンが起動するたびに私の考え方では、後継関数は定義されていません。このルーチンはunderscore.jsライブラリを使用しています。