需要使用javascript代码运行警报字符串

需要使用javascript代码运行警报字符串,javascript,jquery,Javascript,Jquery,我想提醒一下,它执行得好吗?在javascript中执行以下行之后 窗户开得好吗 窗口在这里表示一个全局对象。我不知道上面这一行在javascript中是什么 window.is = function(it){ return function(executed){ return function(well){ return function(questionMark){ alert("is "+it+" "+execut

我想提醒一下,它执行得好吗?在javascript中执行以下行之后

窗户开得好吗

窗口在这里表示一个全局对象。我不知道上面这一行在javascript中是什么

window.is = function(it){
    return function(executed){
        return function(well){
            return function(questionMark){
              alert("is "+it+" "+executed+" "+well+" "+questionMark);
            }
        }
    }
}

window["is"]("it")("executed")("well")("?")​
奇怪的问题。也许有一种更有效的方法


演示:

以下功能很有效,尽管我想不出有什么可能用于这种丑陋的东西

window["is"] = function (it) {
   return function (executed) {
      return function (well) {
          return function (questionMark) {
              alert("is " + it + " " + executed + " " + well + questionMark);
          }
      }
   }
}
第一件事是将is元素添加到窗口数组oh my…,然后继续返回将被调用的函数。

邪恶递归:

arguments.callee引用当前正在调用的函数

window.is = (function(len){
    var buffer = ["is"];
    return function(str) {
        buffer.push(str);
        if(buffer.length === len) {
            alert(buffer.join(" "));
        }
        else {
            return arguments.callee;            
        }
    }
}(5));

这真的是有效的JavaScript吗?你试过执行它来看看会发生什么吗?值得一提的是,这是有效的Javascript函数可以返回函数,但我无法解释为什么会编写如此复杂的东西…我正试图为此创建一个递归函数,但失败得很惨。当然,无法检查函数是否会从函数内部执行……我更喜欢您的函数,因为您在定义函数时没有将is用作字符串。但这是一个非常奇怪的问题。它很有效,谢谢。你能解释一下这行在js中的意思吗?还有,我们使用了完全相同的参数名lol,这有多有趣。@x4f4r:window.is是一个函数,返回一个函数,返回一个函数,返回一个函数。这些函数都接受参数,这些参数被连接到最深的函数中。还在跟踪吗?不这就是为什么窗口执行得很好?​ 这是个坏主意。@ahren这是一个面试官问我的问题。当时我无法回答这个问题,但现在我想知道它是什么,以及如何解决它它也有效。你能告诉我什么是参数吗?你能解释一下你的方法吗。谢谢你真的让它循环工作,很好!可惜你必须提供它的长度,我同意。一个可怕问题的巧妙解决方案。