- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
Wreqr.Commands = (function(Wreqr){
"use strict";
return Wreqr.Handlers.extend({
execute: function(){
var name = arguments[0];
var args = Array.prototype.slice.call(arguments, 1);
this.getHandler(name).apply(this, args);
}
});
})(Wreqr);
bormand 29.01.2013 13:46 # −1
Как нахуя? Чтобы пояснить что лежит в arguments[0]. Не заменять же код на вот такое: А то еще седьмую строку захочется убрать:
roman-kashitsyn 29.01.2013 13:53 # +2
И вообще, в этом коде явно не хватает функций car и cdr
bormand 29.01.2013 14:11 # +1
dimalev 29.01.2013 14:24 # 0
но однородность внешнего вида мне кажется слабым аргументом против использования нормального подхода в выкавыривании аргументов фции
car/cdr это ты жжешь конечно.
bormand 29.01.2013 16:37 # +1
LispGovno 29.01.2013 16:52 # +1
zloirock 29.01.2013 22:58 # 0
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/rest_parameters
http://wiki.ecmascript.org/doku.php?id=harmony:rest_parameters
kyzi007 29.01.2013 18:41 # 0
И вот 6 строка меня тут меньше всего смущает )
roman-kashitsyn 29.01.2013 18:55 # +4
Lure Of Chaos 29.01.2013 19:24 # −1
согласен, таки строка 7 шикарна
wvxvw 30.01.2013 00:10 # 0
bormand 30.01.2013 05:19 # 0
А вот здесь я бы поспорил: Так что, есть вероятность, что таким образом они отвязываются от переприсваиваний Wreqr извне.
wvxvw 30.01.2013 09:59 # 0
roman-kashitsyn 30.01.2013 11:27 # +2
bormand 30.01.2013 11:46 # 0
wvxvw 30.01.2013 22:21 # 0
Но в этом конкретном случае - попробуйте представить какую-нибудь ситуацию, когда такая функция должна будет вернуть разные результаты и зачем такое может понадобиться? Это как создавать множество функций умножения или сложения.
Код должен был выглядеть так, скорее всего, вся внешняя функция вообще не нужна.
bormand 30.01.2013 22:31 # 0
А кто тут создает одинаковые функции? Создается всего лишь замыкание - небольшая структурка, хранящая ссылки на захваченные переменные, да ссылку на код функции, который один на всю толпу. Даже несмотря на черезжопный скопинг жса, замыкания во многих случаях удобней одной функции и цикла/хеша в ней.
wvxvw 30.01.2013 22:35 # 0
Ну как еще по-другому обьяснить... тут была функция, которая всегда возвращала одну и ту же функцию, только созданную по-новой, а вот уже применив функцию которую мы вернули в первый раз можно было получить разные результаты.
bormand 30.01.2013 22:38 # 0