কম্পিউটার

জাভাস্ক্রিপ্টে তীর ফাংশন


MDN এর মতে, একটি তীর ফাংশন এক্সপ্রেশন একটি নিয়মিত ফাংশন এক্সপ্রেশনের একটি সিনট্যাক্টিকভাবে কমপ্যাক্টঅলটারনেটিভ, যদিও এটি, আর্গুমেন্ট, সুপার বা new.target কীওয়ার্ডগুলির সাথে নিজস্ব বাইন্ডিং ছাড়াই। তীর ফাংশন এক্সপ্রেশনগুলি পদ্ধতি হিসাবে অনুপযুক্ত, এবং সেগুলি কনস্ট্রাক্টর হিসাবে ব্যবহার করা যায় না৷

জাভাস্ক্রিপ্টে নিয়মিত ফাংশন এবং অ্যারো ফাংশনে 3টি সূক্ষ্ম পার্থক্য রয়েছে।

  • এই বাঁধাইয়ের মালিকানা নেই

    তীর ফাংশন তাদের নিজস্ব মান নেই. একটি তীর ফাংশনের ভিতরে এটির মান সবসময় এনক্লোজিং স্কোপ থেকে উত্তরাধিকারসূত্রে পাওয়া যায়।

উদাহরণ

this.a = 100;
let arrowFunc = () => {this.a = 150};
function regFunc() {
   this.a = 200;
}
console.log(this.a)
arrowFunc()
console.log(this.a)
regFunc()
console.log(this.a)

আউটপুট

এটি আউটপুট দেবে −

100
150
150

দেখুন যে তীর ফাংশন এই বস্তুটিকে তার সুযোগের বাইরে পরিবর্তন করেছে। নিয়মিত ফাংশন শুধুমাত্র তার নিজের মধ্যে পরিবর্তন করেছে।

  • অ্যারো ফাংশনে আর্গুমেন্ট অ্যারে থাকে না JS আর্গুমেন্ট অ্যারে ফাংশনে একটি বিশেষ বস্তু যা ফাংশনে সমস্ত আর্গুমেন্ট পাস করার জন্য ব্যবহার করা যেতে পারে। এর অনুরূপ, তীর ফাংশনগুলির একটি আর্গুমেন্ট অবজেক্টের সাথে নিজস্ব বাইন্ডিং নেই, তারা এনক্লোজিং স্কোপের আর্গুমেন্টের সাথে আবদ্ধ৷
  • অ্যারো ফাংশনগুলি কল করা যায় তবে গঠনযোগ্য নয় যদি একটি ফাংশন গঠনযোগ্য হয় তবে এটিকে নতুন, অর্থাৎ নতুন ব্যবহারকারী() দিয়ে কল করা যেতে পারে। যদি একটি ফাংশন কলযোগ্য হয়, তবে এটি নতুন ছাড়াই কল করা যেতে পারে (অর্থাৎ সাধারণ ফাংশন কল)।

ফাংশন ডিক্লেয়ারেশন / এক্সপ্রেশনের মাধ্যমে তৈরি করা ফাংশনগুলি গঠনযোগ্য এবং কলযোগ্য।

তীর ফাংশন (এবং পদ্ধতি) শুধুমাত্র কলযোগ্য। ক্লাস কনস্ট্রাক্টর শুধুমাত্র গঠনযোগ্য।

আপনি যদি একটি নন-কলেবল ফাংশন কল করার চেষ্টা করেন বা একটি নন-কনস্ট্রাকটিভ ফাংশন তৈরি করার চেষ্টা করেন তবে আপনি একটি রানটাইম ত্রুটি পাবেন৷

উদাহরণ

let arrowFunc = () => {}
new arrowFunc()

আউটপুট

এই কোড ত্রুটি দেয় −

arrowFunc is not a constructor

  1. জাভাস্ক্রিপ্টে ফ্যাট বনাম সংক্ষিপ্ত তীর ফাংশন

  2. জাভাস্ক্রিপ্টে সংক্ষিপ্ত তীর ফাংশন

  3. জাভাস্ক্রিপ্টে ফ্যাট অ্যারো ফাংশন

  4. জাভাস্ক্রিপ্টে প্রথম শ্রেণীর ফাংশন