Nekromancer,
как бы нужен так то чтобы работало;) Ну сделай пример без бинда) гляну что ль как это делается у отцов js)) |
(function(){ var log = console.log; console.log = function(a){ alert(a); log.apply(this, arguments); } })(); console.log("It's a Magic!") |
Здесь apply не нужен как бы, он сильнее тормозит чем бинд) бинд фиксируется один раз)
а эплай ищется в прототипах функции и.т.п. |
Mахmахmахimus,
Ну во первых твой bind не сработает при аргументах больше одного :) А во вторых, сделай бенчмарк. |
Цитата:
в среднем бинд выдавал (алерт убрал) 1900-2100 а эплай выдавал 2300 - 2900 на 10 000 итераций но спасибо что сказал, ты же не знал что я знаю про эплай) Ну так что, это декоратор? |
Mахmахmахimus,
Да ты нам сам бенчмарк покажи, а не то сколько выдавал он. Мы сами и проверим. |
Nekromancer,
Вы там всем офисом за компом сидите;) ? (function(){ var log = console.log.bind(console); console.log = function(a){ log(a); } })(); var start = new Date() for ( var i = 0; i < 100000; i++) { console.log('d', 'gg'); } alert((new Date()) - start) (function() { var log = console.log; console.log = function() { log.apply(this, arguments); } })(); var start = new Date() for ( var i = 0; i < 100000; i++) { console.log('d', 'gg'); } alert((new Date()) - start) |
Mахmахmахimus,
Не-не-не, запускать даже не буду. И ты наверно не запускал. Ты в курсе что в хроме можно максимум 1000 раз отпечатать в консоль подряд? А может ты ещё всё таки для правильно бенчмарка заменишь apply на call и будешь передавать один аргумент, ведь bind с несколькими в данном случае не работает? |
monolithed,
что означает стрелочка? -> |
Цитата:
|
Часовой пояс GMT +3, время: 12:45. |