Access Modifiers (Erişim Düzenleyicileri)

public, private ve protected, sınıfın dışarıdan erişimini kontrol etmek için kullanılan üç erişim düzenleyicisidir. Varsayılan olarak, sınıfın tüm öğeleri (özellikler, alanlar, yöntemler veya işlevler) sınıf dışından herkese açıktır.

class Car {
  constructor(name) {
    this.name = name;
  }
  static hello(x) {
    return "Hello " + x.name;
  }
}
let myCar = new Car("Toyota");
console.log(Car.hello(myCar)); // Hello Toyota

private öğelerine yalnızca sınıf içinden erişilebilir ve dışarıdan erişilemez. Private # ile başlamalıdır.

class Car {
  constructor(name) {
    this.name = name;
  }
  static hello(x) {
    return "Hello " + x.name;
  }
  #present(carname) {
    return "I have a " + this.carname;
  }
}
let myCar = new Car("Toyota");
console.log(myCar.#present("Camry")); // Error
console.log(Car.hello(myCar)); // Hello Toyota

protected öğelerine yalnızca sınıfın içinden ve onu türeterek oluşturan sınıflardan erişilebilir. Bunlar, miras alan sınıfın üst sınıfa da erişim kazanması nedeniyle dahili arayüz için kullanışlıdır. protected öğeler _ ile gösterilir.

class Car {
  constructor(brand) {
    this.carname = brand;
  }
  _present() {
    return "I have a " + this.carname;
  }
}

class Model extends Car {
  constructor(brand, mod) {
    super(brand);
    this.model = mod;
  }
  show() {
    return this._present() + ", it is a " + this.model;
  }
}
let myCar = new Model("Toyota", "Camry");
console.log(myCar.show()); // I have a Toyota, it is a Camry

results matching ""

    No results matching ""