мне было интересно о скорости различных способов модификации встроенного класса массива в JavaScript, поэтому я сделал небольшой тест:Почему пользовательский массив медленнее, чем версия ванили?
http://jsperf.com/array-vs-custom-array
Это сравнивает три различные способ добавления функции УДАЛИТЬ к массиву. Функция remove(), добавленная с Object.create(), кажется, дико (~ 90% в Chrome) медленнее той же функции с .call() или добавлена в Array.prototype. Они все делают одно и то же, и на самом деле это одна и та же функция, поэтому мне любопытно, почему существует разница в скорости.
Интересно .. Я изменил тест, чтобы включить пример монетного двора, где я просто установил add remove на массив после его создания. Это кажется самым быстрым и функционально идентичным методу шоколада Object.create(), но с недостатком, что .remove будет перечислимым .. http://jsperf.com/array-vs-custom-array/3 – notlion
Кроме того, я возникло впечатление, что вызов функции сначала рассмотрит непосредственный объект и _then_ на прототипе. Так что шоколад и ваниль не должны быть одинаковыми? Hrm .. – notlion
Если вы все еще интересуетесь этим тестом, я думаю, что часть проблемы заключается в том, что у вас было слишком много времени в разделе времени. Если вы переместите push-вызов в тестовую настройку, производительность для удаления будет одинаковой для всех трех типов. http://jsperf.com/array-vs-custom-array/4 – myeeshen