Я пишу сценарий, в котором мне нужно клонировать массивы во многих разных местах. По этой причине я хотел бы сделать следующее для эмуляции функции клонирования:
var clone = [].slice.call;
var arr1 = [1,2,3,4,5,6,7,8,9,10];
var arr2 = clone(arr1, 0);
К сожалению, приведенный выше код приводит к: TypeError: объект не является функцией
. Я понимаю, что существует множество функций для глубокого клонирования и мелких копий, но я просто хочу использовать встроенный метод. Интересно, что следующее действительно работает:
var clone = [].slice;
var arr1 = [1,2,3,4,5,6,7,8,9,10];
var arr2 = clone.call(arr1, 0);
Кто-нибудь знает, почему первый блок не работает, а второй работает? Есть ли способ ссылаться на вызов функций и применять функции, не вызывая ошибок при вызове указанной функции?