Я просто просматривал несколько фотографий с конференции нг-Европа в этом году, и заметил, что слайд я думаю, мог бы показать код от предстоящего угловыми 2. Смотрите здесь:Зачем использовать Array.prototype.forEach.call (array, cb) для array.forEach (cb)?
То, что я не получаю это:
Почему автор этого кода с использованием Array.prototype.forEach.call(array, cb)
в предпочтении тех короче и (по-моему) эквивалентной версия array.forEach(cb)
. Единственная причина, по которой я мог себе представить, - это последствия для производительности.
Кто-нибудь знает о другой разнице? Или, может быть, я прав, когда думаю, что у меня получается?
Возможный дубликат [JS - Зачем использовать Prototype?] (Http://stackoverflow.com/questions/8433459/js-why-use-prototype) –
Основная причина, по которой '[] .forEach.call (arr) 'используется для предотвращения объектов типа массива (объект' arguments', списки узлов DOM и т. д.), вызывая ошибку, поскольку 'Array.prototype' не находится в цепочке прототипов этих объектов. Вот очень похожий вопрос, но спросил с другой стороны: http://stackoverflow.com/questions/1424710/why-is-my-join-on-a-javascript-array-failing –
@ Qantas. Спасибо за ответ. Но почему вы оставили его в качестве комментария вместо ответа? – NicBright