CodeBlanks Logo Icon CodeBlanks

__proto__ ve Object.getPrototypeOf

JavaScript kursu · İleri seviye · Ders 14/100

Bir nesnenin prototipini __proto__ ve Object.getPrototypeOf ile öğrenirsin.

__proto__ ve Object.getPrototypeOf

Her nesnenin prototipine iki yolla erişirsin. Eski yol __proto__ özelliğidir; bu özellik artık önerilmiyor. Önerilen yol Object.getPrototypeOf(obj) işlevidir.

const rex = new Animal('Rex');
Object.getPrototypeOf(rex); // Animal.prototype
rex.__proto__;              // aynı sonuç, ama önerilmiyor

İkisi de aynı nesneyi verir. Yine de yeni kodlarda Object.getPrototypeOf kullanmak daha güvenlidir.

Prototipi yazmak

Prototipi okumak için Object.getPrototypeOf kullan. Prototipi yazmak içinse iki güvenli yol var: Object.create(proto) ile yeni nesne üretmek ya da Object.setPrototypeOf(obj, proto) ile var olanı değiştirmek.

const base = { greet() { return 'merhaba'; } };
const child = Object.create(base);
// child artık base'i prototip olarak kullanır

__proto__'ya doğrudan atama yapmaktan kaçın; bu desen eski kodlarda görülür ama modern projelerde önerilmez.

Uygulama İki nesnenin prototipini karşılaştır

Animal constructor'ını tanımla: name parametresini this.name'a ata. a ve b adında iki nesneyi new Animal('Rex') ve new Animal('Max') ile üret. console.log ile Object.getPrototypeOf(a) === Object.getPrototypeOf(b) ifadesini yazdır.

Örnek çözümü göster
function Animal(name) {
  this.name = name;
}
const a = new Animal('Rex');
const b = new Animal('Max');
console.log(Object.getPrototypeOf(a) === Object.getPrototypeOf(b));

Kendini test et

  1. Bir nesnenin prototipini okumanın önerilen yolu hangisidir?

    • Object.getPrototypeOf(obj)
    • obj.__proto__
    • obj.prototype
    • Object.prototype
    Cevabı göster

    Object.getPrototypeOf(obj) — Doğru! Object.getPrototypeOf önerilen yoldur.

  2. Prototipi oku

    const proto = Object.____;
    Cevabı göster
    const proto = Object.getPrototypeOf(rex);
  3. Yöntemleri kullanımlarıyla eşleştir

    __proto__
    önerilmiyor
    Object.getPrototypeOf
    önerilen okuma
    Object.create
    yeni nesne + prototip
    Object.setPrototypeOf
    var olanı değiştir

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