Middle
Function.prototype.bind эмне кылат жана эмне үчүн керек?
sobes.tech AI
AIден жооп
function.prototype.bind жаңы функция түзөт, ал чакырылганда, this мааниси (яъни, чакыруу контексти) белгиленет жана, каалоо боюнча, белгилүү бир аргументтердин топтому, алар жаңы функция чакырылганда берилгендерден мурда коюлат.
Эмне үчүн керек:
- Контекстти (this) бекитүү: Өзгөчө асинхрондук операцияларда, иш-чара иштетүүчүсүндө же объекттердин ыкмаларын callback катары өткөрүүдө пайдалуу, анткени
thisтин стандарттык жүрүм-туруму өзгөрүшү мүмкүн.bindыкмасын оригиналдуу объекттин контекстинде иштетүүнү камсыздайт. - Функциялардын жарым-жартылай колдонулушу (Currying): Бул оригиналдуу функциянын баштапкы аргументтерин бекиткен жаңы функцияны түзүүгө мүмкүндүк берет.
Контекстти бекитүү мисалы:
class MyClass {
constructor() {
this.name = 'MyClass Instance';
}
greet() {
console.log(`Салам, ${this.name}`);
}
}
const instance = new MyClass();
const greetMethod = instance.greet;
// greetMethod глобалдык контекстте (же strict режиминде `undefined`), `this` MyClass эмес
greetMethod(); // Чыгуу: Салам, `undefined` (же ката)
const boundGreetMethod = instance.greet.bind(instance);
// boundGreetMethod - `instance` контекстинде чакырылат
boundGreetMethod(); // Чыгуу: Салам, MyClass Instance
Жарым-жартылай колдонуу мисалы:
function multiply(a, b) {
return a * b;
}
const multiplyByTwo = multiply.bind(null, 2); // Биринчи аргументти 2 деп бекитебиз
console.log(multiplyByTwo(5)); // Чыгуу: 10 (ушул эле multiply(2, 5))