Sobes.tech
Junior

Чӣ гуна ба метод дар сатрҳои занҷирӣ муроҷиат кардан мумкин аст?

sobes.tech AI

Ҷавоб аз AI

Истифодаи нуқта (.) байни қўшишҳои методҳо ё хосиятҳои объект. Ҳар як қўшиши метод ё дастрасӣ ба хосият объектро бармегардонад, ки шумо метавонед баъдтар ба он қўшиш ё хосиятро дастрасӣ ёфтан гиред.

// Мисоли зинаи қўшишҳои методҳо
" abc ".trim().toUpperCase().split(" ");

/*  
   1. " abc ".trim()  -> "abc"  
   2. "abc".toUpperCase() -> "ABC"  
   3. "ABC".split(" ") -> ["ABC"]  
*/

// Мисоли зина бо дастрасӣ ба хосият
const user = {
  address: {
    city: "Маскав"
  }
};

user.address.city; // "Маскав"

// Мисоли бо истифодаи зинаи интихобӣ (?.)
// Имкон медиҳад, ки бо бехатарӣ ба хосиятҳои дарунсохт дастрасӣ ёбад,
// ва хатогиро пешгирӣ мекунад, агар яке аз хосиятҳои миёна null ё undefined бошад.
user.address?.street; // undefined, бе хатогӣ

const anotherUser = {};
anotherUser.address?.city; // undefined, бе хатогӣ

Дар тарҳрезии методҳои худ барои дастгирии зина, ҳар як метод бояд this-ро баргардонад (ишора ба объекти ҳозира), ба истиснои охирин метод дар зина, ки метавонад натиҷаи ниҳоиро баргардонад.

class Builder {
  constructor() {
    this.value = "";
  }

  addText(text) {
    this.value += text;
    return this; // Баргардонидани this
  }

  addNumber(number) {
    this.value += number;
    return this; // Баргардонидани this
  }

  build() {
    return this.value; // Баргардонидани натиҷаи ниҳоӣ
  }
}

const result = new Builder().addText("Hello").addNumber(123).build();
console.log(result); // "Hello123"