Junior
Πώς αλλάζετε το πλαίσιο μιας λειτουργίας σε JavaScript;
sobes.tech AI
Απάντηση από AI
JavaScript-də, bir funksiyanın icra konteksti (this) bir neçə üsulla dəyişdirilə bilər:
-
call(): Bir funksiyanı müəyyən edilmişthisdəyəri və vergüllə ayrılmış arqumentlərlə icra edir.// function.call(thisArg, arg1, arg2, ...) function greet(name) { console.log(`Salam, ${name}! Mən ${this.type}`); } const obj = { type: 'obyekt' }; greet.call(obj, 'Alyona'); // Salam, Alyona! Mən obyekt -
apply(): Bir funksiyanı müəyyən edilmişthisdəyəri və arqumentləri array və ya array-ə bənzər obyekt kimi ötürməklə icra edir.// function.apply(thisArg, [argsArray]) function sum(a, b) { console.log(`${this.name}: ${a + b}`); } const context = { name: 'Hesablama maşını' }; const numbers = [5, 10]; sum.apply(context, numbers); // Hesablama maşını: 15 -
bind(): Müəyyən edilmişthisdəyərinə "bağlanmış" yeni funksiya yaradır. Orijinal funksiya dərhal icra edilmir.// function.bind(thisArg, arg1, arg2, ...) const user = { name: 'Bob' }; function sayHello() { console.log(`Mənim adım ${this.name}`); } const boundSayHello = sayHello.bind(user); boundSayHello(); // M