- Chrome 35: 14ms / 640kb
- Firefox 30: 10.3ms
- IE 11: 9.3ms / 520Kb
- Chrome 35: 28ms / 2 080Kb
- Firefox 30: 17.1ms
- IE 11: 2.9ms / 680Kb
| // | |
| // Closure | |
| // | |
| var a = []; // хранилище истансов, чтобы они не разрушались (не собирались GC) | |
| var getClosure = function(a){ return function(b){ return fn(a, b); } }; | |
| var t = performance.now(); | |
| for (var i = 0; i < 10000; i++) | |
| a.push(getClosure(i)); | |
| console.log(performance.now() - t); | |
| // | |
| // Function#bind | |
| // | |
| var a = []; | |
| var fn = function(a,b){ return a + b; }; | |
| var t = performance.now(); | |
| for(var i = 0; i < 10000; i++) | |
| a.push(fn.bind(null, i)); | |
| console.log(performance.now() - t); |
Реальная это как раз та что fn - а в тесте создаем для нее обертки.
Короткая какая-то функция. Сделай реальную хотя бы строк на 20 :) Может тогда по памяти выиграем.