write w3schools valor una tipos retornar qué pasar parametros hace función funciones funcion desde argumentos anidadas javascript function return chain chainable

w3schools - tipos de funciones en javascript



¿Cómo hacer funcionar una función en JavaScript? (2)

Imaginemos una función como esta:

function foo(x) { x += ''+''; return x; }

Su uso sería como:

var x, y; x = ''Notepad''; y = foo(x); console.log(y); // Prints ''Notepad+''.

Estoy buscando una manera de crear una función que sea posible con otras funciones.

Imagina el uso:

var x, y; x = ''Notepad''; y = x.foo().foo().toUpperCase(); // Prints ''NOTEPAD++''. console.log(y);

¿Cómo haría esto?


Claro, el truco es devolver el objeto una vez que hayas terminado de modificarlo:

String.prototype.foo = function() { return this + "+"; } var str = "Notepad"; console.log(str.foo().foo().toUpperCase());

http://jsfiddle.net/Xeon06/vyFek/

Para que el método esté disponible en String , estoy modificando su prototipo. Sin embargo, tenga cuidado de no hacer esto en Object , ya que puede causar problemas al enumerar sus propiedades.


Si recuerdo correctamente, puede usar "esto" como contexto de una función (objeto al que pertenece) y devolverla para que la función sea chainable. En otras palabras:

var obj = { f1: function() { ...do something...; return this;}, f2: function() { ...do something...; return this;} }

entonces puede encadenar las llamadas como obj.f1().f2()

Tenga en cuenta que no podrá lograr lo que espera llamando a obj.f1 (). ToUpperCase (): ejecutará f1 (), devolverá "this" e intentará llamar a obj.toUpperCase ().