ホームページ  >  記事  >  ウェブフロントエンド  >  関数を解析する前に演算子を追加して、関数をすぐに実行します

関数を解析する前に演算子を追加して、関数をすぐに実行します

高洛峰
高洛峰オリジナル
2017-03-12 13:09:141315ブラウズ

functionの呼び出しメソッドは通常FunctionName()

であることはわかっていますが、「

define function」の末尾に()を追加しようとすると、パーサーはそれを理解できません。

function msg(){
  alert('message');
  }();//解析器是无法理解的

定義された関数の呼び出しメソッドはmsg()である必要があります。

関数をすぐに実行したい場合は、関数本体を()で囲むことができます。

これは、定義された関数本体を括弧で囲むことで、パーサーが

関数式の形式で定義された関数を呼び出すためです。つまり、関数を関数式に変換できるメソッドであれば、パーサーが定義された関数を正しく呼び出すことができるようになります。以下のように:

// 这么写会报错,因为这是一个函数定义:
function() {}()

// 常见的(多了一对括号),调用匿名函数:
(function() {})()

// 但在前面加上一个布尔运算符(只多了一个感叹号),就是表达式了,将执行后面的代码,也就合法实现调用
!function() {}()

! は演算子の 1 つであり、+ - || ~ はすべてそのような関数を持ちます。

! の使用は、オペレーターによってパフォーマンスが異なる場合があります。

その効果は、一般的に使用される次の 2 つの即時実行メソッドと同等です:

(function() {})();
  // or  
(function() {}());

読んでいただきありがとうございます。

以上が関数を解析する前に演算子を追加して、関数をすぐに実行しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。