__proto__ ve Object.getPrototypeOf
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
-
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.
-
Prototipi oku
const proto = Object.____;Cevabı göster
const proto = Object.getPrototypeOf(rex); -
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