Создайте функцию, которая возвращает функцию, и вы будете в состоянии назвать его как (param) (param2) (param3)
window.any = function(m) {
return function(f){
return function(u) {
alert(m + f + u);
}
}
}
функция может возвратить себя, таким образом, неограниченные требования возможны, но необходимо назвать ее без param, чтобы на самом деле показать сообщение:
any = function(msg){
var message = '';
var chain = function(){
if (arguments.length) {
message += arguments[0] + ' ';
} else {
alert(message);
}
return chain;
}
return chain(msg);
}
usage:
any("Message")("for")("user")();
Править:
var any = function(message) {
var sentence = '', timeout = null;
var f = function(msg){
window.clearTimeout(timeout);
if (sentence.length) {
sentence += ' ';
}
sentence += msg;
timeout = window.setTimeout(function(){window.alert(sentence);}, 100);
return f;
}
return f(message);
}
usage:
any("Message")("for")("user");