私はjavascriptを学んでいる間に2つのタイプの機能に遭遇しました。私はそれらを理解するようにそれらを下に置こうとしました。これらの2つのJavaScript関数の違いは何ですか?
function example(arg1, arg2) { //code to do stuff here }
と
thing.method(function(arg) {
//code to do stuff here
});
私の考えは最初のケースは、2つの引数を取り、ものは中括弧で起こる例という関数を作成していることです。私は関数が呼び出され、範囲内にある限り使用できると信じています(正しい単語だと思います)。
2番目に私は混乱します。私の考えは、メソッド(配列、オブジェクト、何でも)がメソッド(foreach、mapなど)に呼び出された後、私は固執することです。名前がない関数がありますか? 1つの引数をとり、中かっこ内で何かが起こります。そのことが配列であり、foreachという関数を呼び出すと、関数ブラケット内の要素は各要素に発生しますか?なぜ私はちょうど私が呼び出すことができる最初のような関数を作成するよりも、これを使用するのだろうか?
は、なぜ私は言うことができませんでした:
function example(arg) { //stuff }
thing.method(example(arg));
私はいくつかのことを誤解している可能性があります。誰かが私のために物事をクリアすることができるだろうか?
あなたは '言うことができます関数の例(arg){}; thing.method(例); '第2の関数は、基本的に関数の第1引数として関数を送信します。 forEachは、基本的に 'forEachに渡された最初の引数を配列の各要素に使用する'ことを意味するため、配列の各要素に対してその関数を実行します。 – Shilly
これは設計パターンに影響する可能性があります。詳細については、https://scotch.io/bar-talk/4-javascript-design-patterns-you-should-knowを参照してください。これは網羅的なパターンのリストではないことに注意してください。工場パターンは含まれていません。 –
最初のものが正しいです。 2番目はちょっと難しいです。コールバックと呼ばれます。関数(匿名関数、あなたが正しく置くように)を別の関数(thing.method)に渡して、その無名関数をどこかのコードの一部として返すようにします。 – Leandro