Sobes.tech
Middle

Šta su metode call, apply i bind u JavaScriptu?

sobes.tech АИ

Одговор од АИ

call, apply и bind су методи доступни за све функције у JavaScript-у. Они се користе за управљање контекстом извршавања функције (this).

  • call: Позива функцију са одређеном вредношћу this и одвојеним аргументима.
    // Пример коришћења call
    function greet() {
      return "Здраво, " + this.name + "!";
    }
    
    const person = { name: "Ivan" };
    
    console.log(greet.call(person)); // Излаз: Здраво, Ivan!
    
  • apply: Позива функцију са одређеном вредношћу this и аргументима прослеђеним у облику низа или псевдо-низа.
    // Пример коришћења apply
    function sum(a, b) {
      return this.base + a + b;
    }
    
    const context = { base: 10 };
    const numbers = [5, 3];
    
    console.log(sum.apply(context, numbers)); // Излаз: 18
    
  • bind: Креира нову функцију која, када се позове, има фиксну вредност this. Оригинална функција се не позива одмах.
    // Пример коришћења bind
    const module = {
      x: 42,
      getX: function() {
        return this.x;
      }
    };
    
    const unboundGetX = module.getX;
    console.log(unboundGetX()); // Излаз: undefined (this указује на глобални објекат)
    
    const boundGetX = unboundGetX.bind(module);
    console.log(boundGetX()); // Излаз: 42 (this је везано за module)
    

Главне разлике:

Метод Пренос аргумената Позив функције Враћена вредност
call Одвојено (знак коме) Одмах Резултат функције
apply У облику низа или псевдо- низа Одмах Резултат функције
bind Одвојено (знак коме) Не одмах Нова функција са везаним this