Чӣ гунаҳо метавон контексти объектро дар JavaScript тағир дод?
sobes.tech AI
Ҷавоб аз AI
Ҳадди ақал чанд роҳҳои асосӣ барои тағир додани контексти (this) объект дар JavaScript вуҷуд дорад:
-
call(): Функсияро бо контексти муайян ва аргументҳо, ки ба таври ҷудогона дода шудаанд, иҷро мекунад.// Мисол бо call() const obj = { арзиш: 42 }; function нишон диҳадАрзиш() { console.log(this.арзиш); } нишон диҳадАрзиш.call(obj); // 42-ро мебарорад -
apply(): Функсияро бо контексти муайян ва аргументҳо, ки ҳамчун массив ё псевдомассив дода шудаанд, иҷро мекунад.// Мисол бо apply() const obj = { арзиш: 100 }; function ҷамъ(a, b) { console.log(this.арзиш + a + b); } ҷамъ.apply(obj, [5, 10]); // 115-ро мебарорад -
bind(): Натиҷаи навро, ки контексти он ба объект муайян мустаҳкам шудааст, бармегардонад. Функсияи аслӣ фавран иҷро намешавад.// Мисол бо bind() const obj = { арзиш: 200 }; function салом() { console.log("Салом аз " + this.арзиш); } const саломБандшуда = салом.bind(obj); саломБандшуда(); // "Салом аз 200"-ро мебарорад -
Функсияҳои стрелка (
=>): Контекиthis-ро надорад. Онҳо контексти лексикӣ, ки дар он муайян шудаанд, мерос мебаранд.// Мисол бо функсияи стрелка const obj = { арзиш: "объект", нишонДоданиАрзиш: function() { const стрелкаФунксия = () => { console.log("Аз функсияи стрелка: " + this.арзиш); // this ба obj ишора мекунад } стрелкаФунксия(); } }; obj.намоишАрзиш(); // "Аз функсияи стрелка: объект"-ро мебарорад -
Пешбарии контекст тавассути истифодаи ҳамчун методи объект: Вақте ки функсия ҳамчун методи объект (
obj.метод()) даъват мешавад, контекстиthisба худи объект (obj) табдил меёбад.// Мисол бо истифодаи ҳамчун метод const obj = { арзиш: "методи объект", нишонДодан: function() { console.log(this.арзиш); } }; obj.намоиш(); // "методи объект"-ро мебарорад -
Пешбарии контекст тавассути конструктор (
new): Вақте ки операториnewбарои сохтани экземпляри нав истифода мешавад, контекстиthisдар дохили конструктор ба экземпляр нав ишора мекунад.// Мисол бо конструктор function MyObject(арзиш) { this.арзиш = арзиш; // this ба экземпляри нав ишора мекунад } const экземпляр = new MyObject("конструктор"); console.log(экземпляр.арзиш); // "конструктор"-ро мебарорад
Ин роҳҳо имкон медиҳанд, ки чӣ чизро this дар дохили функсия ишора мекунад, идора карда шавад, ки барои кор бо объектҳо ва методҳо дар JavaScript муҳим аст.