কম্পিউটার

জাভাস্ক্রিপ্টে নিয়মিত ফাংশন এবং তীর ফাংশনের মধ্যে পার্থক্য


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()
This code gives the error:
arrowFunc is not a constructor

  1. জাভাস্ক্রিপ্ট ফাংশন ডিফল্ট এবং বিশ্রাম পরামিতি মধ্যে পার্থক্য কি?

  2. জাভাস্ক্রিপ্টে ফাংশন এবং পদ্ধতির মধ্যে পার্থক্য কী?

  3. জাভাস্ক্রিপ্টে কাস্টম এবং বিল্ট-ইন ফাংশনের মধ্যে পার্থক্য কী?

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