Sobes.tech
Middle

ცოცხალი კოდირება: განსაზღვრეთ კონსოლში გამოსავალი ფუნქციებით, სლაკური ფუნქციებით, ობიექტებით და კონტექსტით (this), call/bind

sobes.tech AI

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

JavaScript-ში შესრულების კონტექსტი (this) დამოკიდებულია ფუნქციის გამოძახების მეთოდზე. სლაკური ფუნქციებს არ აქვთ საკუთარი this — ისინი მემკვიდრეობით იღებენ მას გარედან ლექსიკალურ გარემოდან.

მაგალითი:

const obj = {
  value: 42,
  regularFunc: function() {
    console.log(this.value);
  },
  arrowFunc: () => {
    console.log(this.value);
  }
};

obj.regularFunc(); // 42 — this ეხება obj-ს
obj.arrowFunc();   // undefined ან გარედან კონტექსტის მნიშვნელობა (მაგ. window.value)

// call/bind-ის გამოყენება:
function show() {
  console.log(this.name);
}

const user = { name: 'Alice' };

show.call(user); // Alice
const boundShow = show.bind(user);
boundShow(); // Alice

ამიტომ, call და bind საშუალებას აძლევენ მკაფიოდ განვსაზღვროთ this ფუნქციის გამოძახებისას, მაგრამ არ მუშაობს სლაკური ფუნქციებისთან, რადგან მათი this ლექსიკალურად ფიქსირებულია.