ホームページ >ウェブフロントエンド >jsチュートリアル >「setTimeout」の関数呼び出しを常に括弧で囲まないのはなぜですか?
関数呼び出しで括弧を使用する場合
次のコードを調べるとき:
var myFunction = function() { setTimeout(myFunction, 1000); } myFunction();
なぜなのか疑問に思うかもしれません。 setTimeout 内の関数呼び出しには括弧は必要ありませんが、独立した関数呼び出しには括弧が必要ありません。
区別を理解する
タイムアウト関数の引数
setTimeout は、関数参照を引数の 1 つとして受け取ります。指定されたコードでは、myFunction がコールバック関数として参照されています。
タイムアウト引数の括弧
setTimeout(myFunction(), 1000) に括弧が含まれていると、意図しない結果が生じる可能性があります。 myFunction が関数を返す場合 (たとえば、アロー関数を使用する場合)。このような場合、setTimeout は関数参照自体ではなく、myFunction の戻り値を受け取ります。これにより、関数が繰り返し実行されたり、予期しない動作が発生したりする可能性があります。
そのため、関数参照を期待する setTimeout または同様のメソッドを使用する場合は、関数の引数のかっこを省略することが一般的に推奨されます。
🎜>以上が「setTimeout」の関数呼び出しを常に括弧で囲まないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。