Junior
ფუნქციის განსაზღვრის ორი მეთოდის შორის რა განსხვავებაა?
sobes.tech AI
პასუხი AI-სგან
ძირითადი განსხვავება — this კონტექსტია.
| ფუნქციის განსაზღვრის მეთოდი | განსხვავება |
|---|---|
ფუნქციის გამოცხადება |
this კონტექსტი განსაზღვრავს, როგორ იძახება ფუნქცია. იგი ამაღლებულია კოდის შესრულებამდე (hoisting). |
სლაკონური ფუნქცია |
this კონტექსტი მემკვიდრეობით იღებს გარშემომყოფ (ლექსიკალური) კონტექსტიდან. არ ამაღლდება (no hoisting). |
// ფუნქციის გამოცხადება
function ჩვეულებრივიფუნქცია() {
console.log(this); // `this` დამოკიდებულია ზარალზე
}
// სლაკონური ფუნქცია
const სლაკონურიფუნქცია = () => {
console.log(this); // `this` მემკვიდრეობით იღებს ფუნქციის განსაზღვრის კონტექსტიდან
};
სლაკონური ფუნქციები არ აქვთ საკუთარი arguments ობიექტი (იგი იღება გარედან კონტექსტიდან) და ვერ გამოიყენება კონსტრუქტორებად new ოპერატორით.