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, время: 07:10. |