Каковы преимущества использования .call() при вызове [].slice.call( [1, 2, 3] )?

Добрый день!
Часто вижу такой код:
[].slice.call( [1, 2, 3] );
И задался вопросом, почему я использую метод напрямую, а кто то через call:
[1, 2, 3].slice();
В чем отличия и каковы преимущества использования call()?
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
DIITHiTech
@DIITHiTech
Fullstack javascript developer
через call вызывают когда надо slice вызывать на не массиве, а на том что на него по структуре похоже -перечисляемом объекте... . Вообщем методы массива можно вызвать на любом объекте, у которого есть свойство length , ну и свойства с числовыми ключами...

var likeArrayObject = {
                   0: "a",
                   1: "b",
                   2: "c",
                   3: "d",
                   4: "e",
                   length: 5
               },

               arr = Array.prototype.slice.call(likeArrayObject, 1, 4); //теперь это массив
               console.log(likeArrayObject);
               console.log(arr);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы