Typeahead
最近、予測検索ボックスの解決策としてJS ライブラリを調べ始めました。しかし、それを実装するコードを見て、私は物事をもう少し深く調べ始め、javascript
.
これを達成するには、主に 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 関数の説明
コードでは、作成者は無名関数を使用しています。とにかく、誰かが私のためにこれを片付けることができれば、本当に感謝しています。また、質問する前に、私は実際にこれをグーグルで検索し、違いを概説するさまざまなサイトに移動しましたが、ここでコミュニティに質問したいと思います.