Array.prototype.sort( callbackfn [ , thisArg ] )

# Michaël Rouges (4 years ago)

Is there a reason to not have a thisArg for the Array.prototype.sort() callback?

Actually, it enforces to bind the context or to have nested functions, each one creating a new function where it isn't strictly necessary.

Michaël Rouges - Lcfvs - @Lcfvs

# Jordan Harband (4 years ago)

I'd assume it's because sort predates ES5, when the thisArg was added; and also because a well-behaved comparator only operates based on a and b - why would you need a receiver?

# Michaël Rouges (4 years ago)

For example, to easily sort the values, compared with another list, using only one iteration.

Le mar. 12 nov. 2019 à 07:42, Jordan Harband <ljharb at gmail.com> a écrit :

# Jordan Harband (4 years ago)

What's the issue with creating a new function for that case, that accesses the other list in its closure?

(Arrow functions, or .bind, are cheap; the thisArg makes it basically impossible to add extra args to all functions that have it, and is almost never used)

# Michaël Rouges (4 years ago)

About arrow functions/binding, it's just a principle, I try to never create some function on-the-fly, I'm working only by immutable objects derivation.

But, ok, if no choice, I'll do that. ;)