-1

在 JavaScript 中,当执行这样的事情时如何显示警报(“用户的任何消息”):

window["any"]("message")("for")("user")

这里的 window 指的是 JavaScript 全局对象。

4

1 回答 1

2

创建返回函数的函数,您可以将其称为 a(param)(param2)(param3)

window.any = function(m) {
   return function(f){
      return function(u) {
           alert(m + f + u);
       }

   }
}

该函数可以返回自身,因此可以无限调用,但您需要在没有参数的情况下调用它才能实际显示消息:

any = function(msg){

   var message = '';
   var chain = function(){
     if (arguments.length) {
        message += arguments[0] + ' ';
     } else {
        alert(message);
     }
     return chain;
   }
   return chain(msg);
}

用法: 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);

 }

用法: any("Message")("for")("user");

于 2012-12-28T13:05:49.370 回答