CodeBlanks Logo Icon CodeBlanks

get ve set trap'leri

JavaScript kursu · İleri seviye · Ders 61/100

get ve set trap'leri ile özellik okuma ve yazmayı yakalamayı öğrenirsin.

get trap'i

get trap, bir özelliği okuduğunda çalışır. proxy.name yazdığında, handler üzerindeki get metodu çağrılır ve dönüş değeri sana verilir.

const handler = {
  get(target, prop) {
    return target[prop];
  }
};

Trap imzası get(target, prop, receiver) şeklindedir. target sarılan nesne, prop okunan özellik adı, receiver ise Proxy'nin kendisidir. Buradan istediğin değeri döndürebilirsin; böylece okumayı gizleyebilir veya dönüştürebilirsin.

set trap'i

set trap, bir özelliğe değer atadığında çalışır. proxy.age = 28 yazdığında handler üzerindeki set metodu çağrılır.

const handler = {
  set(target, prop, value) {
    target[prop] = value;
    return true;
  }
};

Trap imzası set(target, prop, value, receiver) şeklindedir. value atanmak istenen yeni değerdir. set trap true döndürmelidir; aksi halde katı modda atama başarısız olur. Buradan değeri doğrulayabilir, dönüştürebilir veya reddedebilirsin.

Uygulama get ve set trap'lerini yaz

user adında name özelliği olan bir nesne tanımla. handler içinde get ve set trap'lerini yaz: get trap target[prop] döndürsün, set trap target[prop] = value yapıp true döndürsün. proxy değişkenini new Proxy(user, handler) ile oluştur. proxy.age = 28 ata ve console.log(proxy.age) ile yazdır.

Örnek çözümü göster
const user = { name: 'Ayşe' };
const handler = {
  get(target, prop) {
    return target[prop];
  },
  set(target, prop, value) {
    target[prop] = value;
    return true;
  }
};
const proxy = new Proxy(user, handler);
proxy.age = 28;
console.log(proxy.age);

Kendini test et

  1. get trap içinde değeri döndür

    get(target, prop) {
      return ____;
    }
    Cevabı göster
    get(target, prop) {
      return target[prop];
    }
  2. get trap kaç parametre alır?

    • target, prop ve receiver
    • sadece target
    • yalnızca prop
    • target ve value
    Cevabı göster

    target, prop ve receiver — Doğru! get trap; target, prop ve receiver olmak üzere üç parametre alır.

  3. get ve set trap kavramlarını eşleştir

    get trap
    okumayı yakalar
    set trap
    yazmayı yakalar
    target
    orijinal nesne
    value
    yeni değer

İleri seviye bölümündeki tüm dersler