Array.prototype.slice.call, хранящийся в переменной, выдает ошибку при вызове

#javascript

#javascript

Вопрос:

Array.prototype.slice.call это функция, typeof Array.prototype.slice.call возвращает "function" , и я могу вызвать ее, например, Array.prototype.slice.call([1]) .
Я могу сохранить эту функцию в переменной вот так const f = Array.prototype.slice.call . typeof f все еще "function" работает, но если я попытаюсь вызвать его сейчас, я получу ошибку: f([0]) => Uncaught TypeError: f is not a function at <anonymous>:1:1 .

Кто-нибудь знает, почему я больше не могу вызывать f ?

Комментарии:

1. Вы потеряли связь между .call() методом и .slice() method. Внутри .call , this будет undefined , поэтому он не может работать так, как он предназначен для работы.

2. const f = Array.prototype.slice.call.bind(Array.prototype.slice); устранит эту проблему.

3. Похоже, что это сообщение об ошибке в любом случае прослушивается.