高阶函数 (HOF) 是一个可以接受另一个函数作为参数或返回一个函数,或两者兼而有之的函数。 JavaScript 中的函数被视为一等公民,这意味着函数可以作为变量存储、作为参数传递并返回。正因为如此,在 JavaScript 中创建高阶函数很容易。
高阶函数是这样的函数:
- 可以接受一个或多个函数作为输入。
- 可以返回一个函数作为输出。
此类函数有助于使编程更加模块化和可重用。
例如:-
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中文网其他相关文章!