ホームページ > 記事 > ウェブフロントエンド > 高階関数 (HOF) の詳細な説明。
高次関数 (HOF) は、別の関数を引数として受け入れるか、関数を返すか、あるいはその両方ができる関数です。 JavaScript の関数は 第一級国民 とみなされます。これは、関数を変数として保存したり、引数として渡したり、返したりできることを意味します。このため、JavaScript で高階関数を簡単に作成できます。
高階関数は次のような関数です:
- は 1 つ以上の関数を入力として受け取ることができます。
- は出力として関数を返すことができます。
このような関数は、プログラミングをよりモジュール化し、再利用可能にするのに役立ちます。
例:-
function higherOrderFunction(callback) { // কিছু কাজ করল console.log("Executing the callback function now..."); callback(); // কলব্যাক ফাংশনকে কল করা হচ্ছে } function sayHello() { console.log("Hello, World!"); } // higherOrderFunction কে একটি ফাংশন হিসেবে call করা হল higherOrderFunction(sayHello); // Output: // Executing the callback function now... // Hello, World!
上記の例では、higherOrderFunction は、sayHello という名前の関数を引数として受け取り、それを呼び出す高階関数です。
JavaScript には多くの高階関数が組み込まれており、配列の操作によく使用されます。一般的な HOF には次のようなものがあります:
map(): 指定された関数を配列の各要素に適用し、新しい配列を返します。
javascriptCopy code const numbers = [1, 2, 3, 4]; const doubled = numbers.map(function(num) { return num * 2; }); console.log(doubled); // Output: [2, 4, 6, 8]
filter(): এটি একটি array-এর উপাদানগুলোকে একটি নির্দিষ্ট condition-এর ভিত্তিতে ফিল্টার করে এবং একটি নতুন array রিটার্ন করে।
javascriptCopy code const ages = [18, 21, 16, 25, 30]; const adults = ages.filter(function(age) { return age >= 18; }); console.log(adults); // Output: [18, 21, 25, 30]
reduce(): এটি একটি array-কে একটি single value-তে রিডিউস করে, একটি accumulator ব্যবহার করে।
javascriptCopy code const numbers = [1, 2, 3, 4]; const sum = numbers.reduce(function(acc, num) { return acc + num; }, 0); console.log(sum); // Output: 10
forEach(): এটি একটি array-এর প্রতিটি উপাদানে নির্দিষ্ট ফাংশন অ্যাপ্লাই করে, কিন্তু কোনো নতুন array রিটার্ন করে না।
javascriptCopy code const numbers = [1, 2, 3]; numbers.forEach(function(num) { console.log(num * 2); // Output: 2, 4, 6 });
Function Returning Function : JavaScript-এ, ফাংশন Higher-Order Functions এর মাধ্যমে অন্য একটি ফাংশনকে রিটার্ন করতে পারে। এটি শক্তিশালী কৌশল যেমন currying এবং function composition করতে সক্ষম করে।
javascriptCopy code function createMultiplier(multiplier) { return function(number) { return number * multiplier; }; } const double = createMultiplier(2); const triple = createMultiplier(3); console.log(double(5)); // Output: 10 console.log(triple(5)); // Output: 15
এই উদাহরণে, createMultiplier একটি Higher-Order Function যা একটি ফাংশনকে রিটার্ন করে যা একটি সংখ্যাকে গুণ করবে নির্দিষ্ট multiplier দিয়ে।
javascriptCopy code function fetchData(callback) { setTimeout(function() { callback("Data fetched successfully!"); }, 1000); } fetchData(function(message) { console.log(message); // Output: "Data fetched successfully!" });
এই উদাহরণে, fetchData একটি HOF, যা একটি ফাংশনকে আর্গুমেন্ট হিসেবে নেয় এবং সেটাকে নির্দিষ্ট সময় পরে কলব্যাক হিসেবে কল করে।
Higher-Order Functions JavaScript-এ একটি শক্তিশালী এবং বহুমুখী কনসেপ্ট যা কোডকে আরও সংগঠিত, পুনঃব্যবহারযোগ্য, এবং পরিষ্কার করে তোলে। ফাংশনকে ফার্স্ট-ক্লাস সিটিজেন হিসেবে গ্রহণ করে, JavaScript ডেভেলপারদের বিভিন্ন প্রোগ্রামিং প্যাটার্ন অনুসরণ করতে দেয়, যা ডেভেলপমেন্টকে আরও কার্যকর করে তোলে।
以上が高階関数 (HOF) の詳細な説明。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。