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"