ホームページ > 記事 > ウェブフロントエンド > 関数を解析する前に演算子を追加して、関数をすぐに実行します
functionの呼び出しメソッドは通常FunctionName()
であることはわかっていますが、「define function」の末尾に()を追加しようとすると、パーサーはそれを理解できません。
function msg(){ alert('message'); }();//解析器是无法理解的定義された関数の呼び出しメソッドはmsg()である必要があります。 関数をすぐに実行したい場合は、関数本体を()で囲むことができます。 これは、定義された関数本体を括弧で囲むことで、パーサーが
関数式の形式で定義された関数を呼び出すためです。つまり、関数を関数式に変換できるメソッドであれば、パーサーが定義された関数を正しく呼び出すことができるようになります。以下のように:
// 这么写会报错,因为这是一个函数定义: function() {}() // 常见的(多了一对括号),调用匿名函数: (function() {})() // 但在前面加上一个布尔运算符(只多了一个感叹号),就是表达式了,将执行后面的代码,也就合法实现调用 !function() {}()
! は演算子の 1 つであり、+ - || ~ はすべてそのような関数を持ちます。
! の使用は、オペレーターによってパフォーマンスが異なる場合があります。 その効果は、一般的に使用される次の 2 つの即時実行メソッドと同等です:(function() {})(); // or (function() {}());読んでいただきありがとうございます。
以上が関数を解析する前に演算子を追加して、関数をすぐに実行しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。