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配列に追加して(oh my…)、呼び出される関数を返し続けます。

于 2012-12-06T09:42:23.523 に答える