绑定对象的函数里的 this 到对象本身。

使用 Array.prototype.forEach() 来遍历对象里所有指定的函数,使用 Function.prototype.apply() 来指定函数中 this 的上下文为对象本身,再覆盖原先的函数。

继续阅读 30秒学会 JavaScript 片段 – bindAll

Gets the day of the year from a Date object.

Use new Date() and Date.prototype.getFullYear() to get the first day of the year as a Date object, subtract it from the provided date and divide with the milliseconds in each day to get the result.
Use Math.floor() to appropriately round the resulting day count to an integer.

继续阅读 30秒学会 JavaScript 片段 – dayOfYear

Groups the elements into two arrays, depending on the provided function’s truthiness for each element.

Use Array.prototype.reduce() to create an array of two arrays.
Use Array.prototype.push() to add elements for which fn returns true to the first array and elements for which fn returns false to the second one.

继续阅读 30秒学会 JavaScript 片段 – partition

Creates a function that invokes the provided function with its arguments arranged according to the specified indexes.

Use Array.prototype.map() to reorder arguments based on indexes in combination with the spread operator (...) to pass the transformed arguments to fn.

继续阅读 30秒学会 JavaScript 片段 – rearg

Curries a function.

Use recursion.
If the number of provided arguments (args) is sufficient, call the passed function fn.
Otherwise, return a curried function fn that expects the rest of the arguments.
If you want to curry a function that accepts a variable number of arguments (a variadic function, e.g. Math.min()), you can optionally pass the number of arguments to the second parameter arity.

继续阅读 30秒学会 JavaScript 片段 – curry