
Higher-Order Function (HOF) is a function that can accept another function as an argument or return a function, or both. Functions in JavaScript are considered First-Class Citizens, which means that functions can be stored as variables, passed as arguments, and returned. Because of this, it is easy to create higher-order functions in JavaScript.
Higher-Order Function is a function that:
- can take one or more functions as input.
- can return a function as output.
Such functions help make programming more modular and reusable.
eg:-
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!
In the above example, higherOrderFunction is a higher-order function that takes a function named sayHello as an argument and then calls it.
JavaScript has many built-in Higher-Order Functions, which are commonly used to operate on arrays. Some common HOFs are:
map(): It applies a specified function to each element of an array and returns a new array.
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 ডেভেলপারদের বিভিন্ন প্রোগ্রামিং প্যাটার্ন অনুসরণ করতে দেয়, যা ডেভেলপমেন্টকে আরও কার্যকর করে তোলে।
The above is the detailed content of Detailed discussion of Higher-Order Functions (HOFs).. For more information, please follow other related articles on the PHP Chinese website!
What should I do if English letters appear when I turn on the computer and the computer cannot be turned on?
A collection of common computer commands
How to read carriage return in java
oracle clear table data
Intouch report production method
photoshop cs5 serial number
Big data analysis tools
The difference between ++a and a++ in c language