Andrise programmeerimisalane WIKI
Funktsiooni käivituse aheldamine
Kirjeldatud viisil ei pruugi olla suurt praktilist väärtust, kuid lahe on see ikka.
function add(a){ var ret = function(b){ a += b; return ret; } ret.valueOf = function(){return a} ret.toString = function(){return String(a)} return ret; } add(1)(2)(3) + 5; // 11 alert(add(2)(3)); // 5
Lühidalt öeldes luuakse funktsioon, mis tagastab igal käivitusel iseenda, liites igakordselt saadud parameetri väärtuse eelmisele väärtusele otsa. Kuna tagastataval funktsioonil on seatud meetodid valueOf ja toString saab funktsiooni väärtuseks numbri (valueOf) ja stringi (toString) kontekstis sisemise kaunteri väärtus, mitte funktsioon ise.
Käidud rada: • git_github • close_tab • funcparams