0

我想is it executed well?在 javascript 中执行以下行后发出警报

window["is"]("it")("executed")("well")("?")

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

4

3 回答 3

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

window["is"]("it")("executed")("well")("?")​

奇怪的问题。可能有一种更有效的方法......

演示:http: //jsfiddle.net/jd3uM/

于 2012-12-06T09:41:33.963 回答
3

邪恶的递归:)

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));

http://jsfiddle.net/tarabyte/wf8ag/

于 2012-12-06T09:48:45.427 回答
0

以下作品,虽然我想不出任何可能用于丑陋的东西。

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

第一件事是将is元素添加到window数组中(哦,我的……),然后继续返回将被调用的函数。

于 2012-12-06T09:42:23.523 回答