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"