Подтвердить что ты не робот

Function.prototype.apply.bind использует?

Я отлично знаю :

Function.prototype.bind.apply(f,arguments)

Объяснение. Используйте метод оригинала (если существует) bind над f с помощью arguments (который будет использовать его первый элемент в контексте this)

Этот код может использоваться (например) для создания новых функций с помощью функции-конструктора с аргументами

Пример:

function newCall(Cls) {
    return new (Function.prototype.bind.apply(Cls, arguments));
 }

Исполнение:

var s = newCall(Something, a, b, c);

Но Я столкнулся с этим: Function.prototype.apply.bind(f,arguments)//word swap

Вопрос:

Как трудно понять его значение - в каких случаях/сценариях я буду использовать этот код?

4b9b3361

Ответ 1

Это используется, чтобы исправить первый параметр .apply.

Например, когда вы получаете максимальное значение из массива, вы делаете:

var max_value = Math.max.apply(null, [1,2,3]);

Но вы хотите, чтобы первый параметр был зафиксирован на null, поэтому вы могли бы создать новую функцию:

var max = Function.prototype.apply.bind(Math.max, null);

то вы можете просто сделать:

var max_value = max([1,2,3]);