Pregunta rápida que realmente no he tenido la oportunidad de investigar. ¿Cuál es más eficaz cuando se utiliza en una llamada/aplicar tipo de contexto: Array.prototype
frente a []
?Array.prototype vs [] perf
ej .:
function test1() {
return Array.prototype.splice.apply(arguments, [1, 2]);
}
test1([1,2,3,4,5,6,7,8,9]);
function test2() {
return [].splice.apply(arguments, [1, 2]);
}
test1([1,2,3,4,5,6,7,8,9]);
Mis pensamientos: yo asumiría la forma Array.prototype
es más performante porque una función prototipo puede ser reutilizado y se creará ninguna necesidad literal. Aunque no estoy muy seguro.
Usando JSPerf (con cromo) parece que el Array.prototype
es de hecho un poco más performante:
http://jsperf.com/array-perf-prototype-vs-literal
Espero que el 'Array.prototype.splice' sea más rápido por el motivo que enumeró; no hay creación de objetos adicionales. Sin embargo, esto es una micro-optimización en el mejor de los casos, y debe enfocarse en la legibilidad en estas situaciones. – Matt
* de acuerdo * ¿Qué es más legible en tu opinión? Me inclinaría por Array.prototype, pero sigo viendo [] usado en libs, etc. –
Estoy de acuerdo con 'Array.prototype' al respecto, aunque Dpolehonski hace un buen punto en su respuesta sobre la reducción en bytes cuando usas '[]'. Creo que los beneficios de cualquiera de los enfoques son tan menores, que se reduce a preferencia personal más que a cualquier otra cosa. – Matt