¿Podrías hacerlo sin if?
Parte 2
2011-08-31 por @joseanpg
[En construcción]
Buscando a Smalltalk
Todo lenguaje que permita acceder dinámicamente a objetos estructurados (incluyo los arrays en esta categoría) cuyos campos pueden apuntar a funciones permite emular las sentencias y expresiones condicionales utilizando selectores sobre los campos de dichos objetos.
Todos conocemos el siguiente patrón para sustituir un switch
[PENDIENTE]
function empty(){}; function bool(booleanValue) { var branchs = [empty,empty]; return { ifTrue: function (f){ branchs[1] = f; return this;}, ifFalse: function (f){ branchs[0] = f; return this;}, exec: function(arg){return branchs[Number(booleanValue)](arg);} }; } (function (n) { (function fun(m) { console.log(n-m+1); bool(m>1).ifTrue(fun).exec(m-1); })(n) })(100);