7

hi()()二重括弧で関数を呼び出すと、関数はhi出力を表示し、それhiは関数ではないというエラーも表示します。

<html>
    <head></head>
<script>

function hello()
{
    document.write("hello");
}
function hi()
{
    document.write("hi");
    return "hello";
}
hi()();
</script>
</html>

()()関数名で使用する意味は何ですか?

4

5 に答える 5

13

hi次のように、名前の代わりに関数を返す場合、二重括弧は役に立ちます。

function hi(){
    return hello;
}
hi()();

そのつもりだったのだろう。

于 2013-09-14T13:03:38.207 に答える
4

この関数の戻り値は、呼び出し可能なオブジェクトではない文字列です。

function hi()
{
    document.write("hi");
    return "hello"; // <-- returned value
}

ただし、この関数を複数回呼び出したい場合は、for ループなどを使用できます。

hi()() の例:

function hi(){
    return function(){ // this anonymous function is a closure for hi function
       alert('some things')
    }
}

JSフィドル:こちら

helloこれを試した直後に関数を呼び出したい場合hi

 function hi()
    {
        document.write("hi");
        return hello; //<-- no quote needed
        // In this context hello is function object not a string
    }
于 2013-09-14T13:05:05.210 に答える
0

eval()string であっても実行するために 使用できます:eval(hi()+'()');

于 2013-09-14T13:18:18.597 に答える