JS this


ULASHISH

Obyekt metodidagi this

Misol

const person = {
  firstName: "John",
  lastName : "Doe",
  id       : 5566,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};
O‘zingiz sinab ko‘ring »

Obyekt metodida ishlatilganda, this obyektning o‘ziga ishora qiladi.

Yuqoridagi misolda this person obyektiga ishora qiladi.

Chunki fullName metodi person obyektining metodidir.


Obyekt metodini bog‘lash

Ushbu misollarda this person obyekti hisoblanadi:

Misol

const person = {
  firstName  : "John",
  lastName   : "Doe",
  id         : 5566,
  myFunction : function() {
    return this;
  }
};
O‘zingiz sinab ko‘ring »

Misol

const person = {
  firstName: "John",
  lastName : "Doe",
  id       : 5566,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};
O‘zingiz sinab ko‘ring »

ya’ni this.firstName — this (person obyekti)ning firstName xususiyatidir.


Funksiyani oshkora bog‘lash

call() va apply() metodlari oldindan belgilangan JavaScript metodlaridir.

Ikkalasi ham obyekt metodini boshqa obyektni argument sifatida berib chaqirish uchun ishlatilishi mumkin.

Quyidagi misol person1.fullName ni person2 argumenti bilan chaqiradi; fullName person1 ning metodi bo‘lsa ham, this person2 ga ishora qiladi:

Misol

const person1 = {
  fullName: function() {
    return this.firstName + " " + this.lastName;
  }
}

const person2 = {
  firstName:"John",
  lastName: "Doe",
}

// Return "John Doe":
person1.fullName.call(person2);

O‘zingiz sinab ko‘ring »



Funksiyani qarzga olish

bind() metodi yordamida obyekt boshqa obyektdan metodni qarzga olishi mumkin.

Ushbu misol 2 ta obyektni (person va member) yaratadi.

member obyekti fullname metodini person obyektidan qarzga oladi:

Misol

const person = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}

const member = {
  firstName:"Hege",
  lastName: "Nilsen",
}

let fullName = person.fullName.bind(member);
O‘zingiz sinab ko‘ring »

this nima?

JavaScript-da this kalit so‘zi obyektga ishora qiladi.

this kalit so‘zi ishlatilish o‘rniga qarab turli obyektlarni bildiradi:

Alohida holatda this global obyektni (brauzerda window) bildiradi.
Oddiy funksiyada this global obyektni bildiradi.
Strict mode’da funksiya ichida this qiymati undefined bo‘ladi.
Obyekt metodida this ushbu obyektning o‘zini bildiradi.
Hodisada (event) this hodisani qabul qilgan elementni bildiradi.
call(), apply() va bind() kabi metodlarda this har qanday obyektga ishora qilishi mumkin.

this o‘zgaruvchi emas.

this — kalit so‘z.

Siz this qiymatini o‘zgartira olmaysiz.

this ustuvorligi

this qaysi obyektga tegishli ekanligini aniqlash uchun quyidagi tartib ustuvorligidan foydalaning:

TartibobyektChunki
1bind() this bind() yordamida chaqirilayotgan funksiya ichida
2apply() this apply() yordamida chaqirilayotgan funksiya ichida
2call() this call() yordamida chaqirilayotgan funksiya ichida
3Obyekt metodi this obyekt funksiyasi (metod) ichida
4Global scope this global scope’dagi funksiya ichida


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!