జావాస్క్రిప్ట్ క్లాస్ ఇన్హెరిటెన్స్

క్లాస్ ఇన్హెరిటెన్సీ

క్లాస్ ఇన్హెరిటెన్సీ సృష్టించడానికి ఉపయోగించండి: extends కీవర్డ్ ప్రత్యయం.

క్లాస్ ఇన్హెరిటెన్సీ ద్వారా సృష్టించబడిన క్లాసులు మరొక క్లాస్ యొక్క అన్ని మార్గదర్శకాలను అనుభవిస్తాయి:

ఇన్స్టాన్స్

ఒక "Model" పేరుతో క్లాస్ సృష్టించండి, దానిలో "Car" క్లాస్ యొక్క మార్గదర్శకాలను వారిస్తుంది:

class Car {
  constructor(brand) {
    this.carname = brand;
  }
  present() {
    return 'నేను ఒక ' + this.carname;
  }
}
క్లాస్ మోడల్ ఎక్స్టెండ్స్ కార్ {}}
  కన్స్ట్రక్టర్(బ్రాండ్, మోడ్) {
    సూపర్(బ్రాండ్);
    ఈ.మోడల్ = మోడ్;
  }
  షో() {
    రిటర్న్ ఈ.ప్రెజెంట్() + ', ఇది ఒక ' + ఈ.మోడల్;
  }
}
లెట్ మైకార్ = న్యూ మోడల్("ఫార్డ్", "మస్టాంగ్");
డాక్యుమెంట్.getElementById("డెమో").innerHTML = మైకార్.షో();

మీరే ప్రయత్నించండి

సూపర్() పద్ధతును పైపురు ప్రత్యామ్నాయంగా కాల్ చేస్తాము.

కన్స్ట్రక్టర్ పద్ధతులో కాల్ చేయడం ద్వారా సూపర్() పద్ధతులు, మేము పైపురు కన్స్ట్రక్టర్ పద్ధతును కాల్ చేశాము, పైపురు అంశాలు మరియు పద్ధతులను పొందడానికి అనుమతించాము.

పరివర్తన కోసం ప్రాధాన్యత ఉంది: కొత్త క్లాస్ సృష్టించడం వద్ద ప్రస్తుత క్లాస్ అంశాలు మరియు పద్ధతులను పునర్వినియోగిస్తారు.

గెట్టర్ మరియు సెట్టర్

క్లాస్ కూడా గెట్టర్ మరియు సెట్టర్ ఉపయోగించగలదు.

మీ అంశాలకు గెట్టర్ మరియు సెట్టర్ ఉపయోగించడం తెలివిగా ఉంటుంది, మరియు వాటిని పొందడానికి లేదా సెట్ చేయడానికి ముందు కొన్ని ప్రత్యేక పనులను చేయడానికి అనువు ఉంటుంది.

ఒక క్లాస్లో గెట్టర్ మరియు సెట్టర్ జోడించడానికి, ఉపయోగించండి: గెట్ మరియు సెట్ కీవర్డ్ ప్రత్యయం.

ఇన్స్టాన్స్

కార్నేమ్ అంశానికి గెట్టర్ మరియు సెట్టర్ సృష్టించండి:

class Car {
  constructor(brand) {
    this.carname = brand;
  }
  గెట్ సినామ్() {
    రిటర్న్ ఈ.కార్నేమ్;
  }
  సెట్ సినామ్(కె) {
    ఈ.కార్నేమ్ = కె;
  }
}
let myCar = new Car("Ford");
డాక్యుమెంట్.getElementById("డెమో").innerHTML = మైకార్.సినామ్;

మీరే ప్రయత్నించండి

ప్రత్యామ్నాయంగా ఉంటుంది:గెట్టర్ ఒక పద్ధతి కావచ్చు కానీ, మీరు అంశపేరును పొందడానికి బ్రాకెట్లు ఉపయోగించకుండా ఉండాలి.

గెట్టర్/సెట్టర్ పద్ధతుల పేరు అంశపేరులతో అనుకూలంగా కాకపోతే, ఈ ఉదాహరణలో ఇది కార్నేమ్

అనేక ప్రోగ్రామర్లు గెట్టర్/సెట్టర్ ను వాస్తవ అంశం ముందు హైన్డ్ అక్షరం _ ఉపయోగించి వేరుచేస్తారు:

ఇన్స్టాన్స్

మీరు హైన్డ్ అక్షరం ఉపయోగించి గెట్టర్/సెట్టర్ ను వాస్తవ అంశం నుండి వేరుచేయవచ్చు:

class Car {
  constructor(brand) {
    ఈ._carname = బ్రాండ్;
  }
  గెట్ కార్నేమ్() {
    రిటర్న్ ఈ._carname;
  }
  set carname(x) {
    this._carname = x;
  }
}
let myCar = new Car("Ford");
document.getElementById("demo").innerHTML = myCar.carname;

మీరే ప్రయత్నించండి

సెట్టర్ ఉపయోగించడానికి, స్థాయి అంశం సమానంగా సంకేతాలు ఉపయోగించండి, బ్రాకెట్లు లేకుండా:

ఇన్స్టాన్స్

సెట్టర్ ఉపయోగించి "వోల్వో" ఆన్లేకు కార్ పేరును మార్చండి:

class Car {
  constructor(brand) {
    ఈ._carname = బ్రాండ్;
  }
  గెట్ కార్నేమ్() {
    రిటర్న్ ఈ._carname;
  }
  set carname(x) {
    this._carname = x;
  }
}
let myCar = new Car("Ford");
myCar.carname = "Volvo";
document.getElementById("demo").innerHTML = myCar.carname;

మీరే ప్రయత్నించండి

Hoisting

与函数和其他 JavaScript 声明不同,类声明不会被提升。

ఇది మీరు క్లాస్ ని ముందు ప్రకటించి ఆనందించాలి అని అర్థం కాగలదు:

ఇన్స్టాన్స్

//ఇప్పుడు మీరు ఈ క్లాస్ ను ఉపయోగించలేరు.
//myCar = new Car("Ford")
//ఈ పరిస్థితిలో తప్పు రాగలదు.
class Car {
  constructor(brand) {
    this.carname = brand;
  }
}
//ఇప్పుడు మీరు ఈ క్లాస్ ను ఉపయోగించవచ్చు:
let myCar = new Car("Ford")

మీరే ప్రయత్నించండి

ప్రత్యామ్నాయంగా ఉంటుంది:కాల్స్ మరియు ఇతర జావాస్క్రిప్ట్ ప్రకటనలు వినియోగించడానికి ముందు ప్రకటనను ప్రయత్నించినప్పుడు తప్పు రాదు, ఎందుకంటే జావాస్క్రిప్ట్ ప్రకటనల డిఫాల్ట్ వైరస్ ప్రవర్తన ప్రకటనను ఉన్నతించడం (ప్రకటనను పైకి తరలించడం) ఉంది.