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 |