Sobes.tech
Middle

JavaScript-те call, apply және bind әдістері не үшін пайдаланылады?

sobes.tech AI

AI-дан жауап

call, apply және bind функцияның орындалу контекстін (яғни this мәнін) басқару және аргументтерді беру үшін қолданылады.

  • call: функцияны this мәні мен аргументтері жеке-жеке берілген түрде шақырады.
    const person = { name: 'Alice' };
    
    function greet(greeting, punctuation) {
      console.log(`${greeting}, ${this.name}${punctuation}`);
    }
    
    greet.call(person, 'Hello', '!'); // Нәтиже: Hello, Alice!
    
  • apply: функцияны this мәні мен аргументтері массив немесе массив тәрізді объект түрінде берілген түрде шақырады.
    const person = { name: 'Bob' };
    
    function greet(greeting, punctuation) {
      console.log(`${greeting}, ${this.name}${punctuation}`);
    }
    
    greet.apply(person, ['Hi', '.']); // Нәтиже: Hi, Bob.
    
  • bind: жаңа функцияны құрады, ол шақырылғанда this мәні мен алдын ала берілген аргументтермен жұмыс істейді. Бұл функцияны бірден шақырмайды.
    const person = { name: 'Charlie' };
    
    function greet(greeting, punctuation) {
      console.log(`${greeting}, ${this.name}${punctuation}`);
    }
    
    const boundGreet = greet.bind(person, 'Yo');
    
    boundGreet('?'); // Нәтиже: Yo, Charlie?
    boundGreet('!'); // Нәтиже: Yo, Charlie!
    

Салыстырмалы кесте:

Әдіс Аргументтерді беру Нәтиже Шақыру
call Жеке-жеке Функцияның орындалу нәтижесі Жедел шақырылады
apply Массив Функцияның орындалу нәтижесі Жедел шақырылады
bind Жеке-жеке Жаңа функция, ол контекстпен байланысты Жасайды, жедел шақырмайды