Sobes.tech
Junior

ფუნქციის განსაზღვრის ორი მეთოდის შორის რა განსხვავებაა?

sobes.tech AI

პასუხი AI-სგან

ძირითადი განსხვავება — this კონტექსტია.

ფუნქციის განსაზღვრის მეთოდი განსხვავება
ფუნქციის გამოცხადება this კონტექსტი განსაზღვრავს, როგორ იძახება ფუნქცია. იგი ამაღლებულია კოდის შესრულებამდე (hoisting).
სლაკონური ფუნქცია this კონტექსტი მემკვიდრეობით იღებს გარშემომყოფ (ლექსიკალური) კონტექსტიდან. არ ამაღლდება (no hoisting).
// ფუნქციის გამოცხადება
function ჩვეულებრივიფუნქცია() {
  console.log(this); // `this` დამოკიდებულია ზარალზე
}

// სლაკონური ფუნქცია
const სლაკონურიფუნქცია = () => {
  console.log(this); // `this` მემკვიდრეობით იღებს ფუნქციის განსაზღვრის კონტექსტიდან
};

სლაკონური ფუნქციები არ აქვთ საკუთარი arguments ობიექტი (იგი იღება გარედან კონტექსტიდან) და ვერ გამოიყენება კონსტრუქტორებად new ოპერატორით.