Sobes.tech
Junior

Kaip iškviesti metodą grandinės iškvietime?

sobes.tech AI

Atsakymas iš AI

Naudokite tašką (.) tarp objekto metodų iškvietimų arba savybių. Kiekvienas metodo iškvietimas arba savybės prieiga grąžina objektą, ant kurio vėliau galite iškviesti kitą metodą arba gauti kitą savybę.

// Metodo grandinės pavyzdys
" abc ".trim().toUpperCase().split(" ");

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

// Savybės prieigos grandinės pavyzdys
const user = {
  address: {
    city: "Maskva"
  }
};

user.address.city; // "Maskva"

// Pavyzdys su pasirinktinės grandinės naudojimu (?.)
// Saugi prieiga prie įdėtų objektų savybių,
// išvengiant klaidų, jei viena iš tarpinės savybių yra null arba undefined.
user.address?.street; // undefined, be klaidos

const anotherUser = {};
anotherUser.address?.city; // undefined, be klaidos

Sukūrę savo metodus, kurie palaiko grandinę, kiekvienas metodas turi grąžinti this (nuorodą į dabartinį objektą), išskyrus paskutinį grandinės metodą, kuris gali grąžinti galutinį rezultatą.

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

  addText(text) {
    this.value += text;
    return this; // Grąžina this
  }

  addNumber(number) {
    this.value += number;
    return this; // Grąžina this
  }

  build() {
    return this.value; // Grąžina galutinį rezultatą
  }
}

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