0

Typeahead最近、予測検索ボックスの解決策としてJS ライブラリを調べ始めました。しかし、それを実装するコードを見て、私は物事をもう少し深く調べ始め、javascript.

これを達成するには、主に 3 つの方法があることを理解しています。

  1. 関数宣言
  2. 関数式
  3. 関数コンストラクト

それをよく見ると、function expressionsにたどり着きましたanonymous functions。これらについての私の理解は、それらは実質的にfunction expression名前のないものであるということですか?

私の質問は、名前付き関数式と無名関数の違いに関するものです。なぜ無名関数の使用を選択するのでしょうか? 匿名関数の利点 (ある場合) は何ですか?

以下を見ると (非常に単純な例であることはわかっています)、まったく同じことをしているように見えますか? 私はそれらを区別することができないようです。

 //Named function expression
   var add = function add(a,b){
       var result = a+b;
       console.log('adding ' + a + ' and ' + b + ' = ' + result);
   }
   add(6,2);

   //Anonymous function expression
   var multiply = function(a,b){
       var result = a*b;
       console.log('multiplying ' + a + ' by ' + b + ' = ' + result);
   };
   multiply(10,6);

   //Named function called immediately
   var divide = function myfunction(a,b){
       var result = a/b;
       console.log('dividing ' + a + ' by ' + b + ' = ' + result);
   }(10,5);

   //Anonymous function called immediately
   var subtract = function (a,b)
   {
       var result = a - b;
       console.log('subtracting ' + b + ' from ' + a + ' = ' + result);
   }(10,5);

余談ですが、これは私がこれを書くきっかけとなった質問でした: Typeahead.js substringMatcher 関数の説明

コードでは、作成者は無名関数を使用しています。とにかく、誰かが私のためにこれを片付けることができれば、本当に感謝しています。また、質問する前に、私は実際にこれをグーグルで検索し、違いを概説するさまざまなサイトに移動しましたが、ここでコミュニティに質問したいと思います.

4

2 に答える 2