JavaScript'te new, Constructor, instanceof, Instances

new Anahtar Kelimesi

JavaScript'te new anahtar kelimesi, bir türü (constructor fonksiyonunu) temel alan yeni bir nesne oluşturmak için kullanılır. Bir türün bir örneğini oluştururken new anahtar kelimesi kullanılır ve bu örnek nesne daha sonra belirtilen türün bir örneği olarak kabul edilir.

function Araba(marka, model) {
  this.marka = marka;
  this.model = model;
}

let araba = new Araba('Toyota', 'Corolla');
console.log(araba.marka); // Toyota
console.log(araba.model); // Corolla

Constructor (Yapıcı) Fonksiyon

Constructor fonksiyonları, new anahtar kelimesi ile çağrıldığında bir nesne oluşturan ve bu nesneye varsayılan özellikler ekleyen özel JavaScript fonksiyonlardır. Constructor fonksiyonları genellikle büyük harfle başlar (örneğin, Araba gibi) ve veri türlerinin instance'larını yaratmak için kullanılır.

function Ogrenci(ad, soyad) {
  this.ad = ad;
  this.soyad = soyad;
}

let ogrenci = new Ogrenci('Ali', 'Demir');
console.log(ogrenci.ad); // Ali
console.log(ogrenci.soyad); // Demir

instanceof Operatörü

instanceof operatörü, bir nesnenin belirli bir constructor fonksiyonundan oluşturulup oluşturulmadığını kontrol etmek için kullanılır. Operatör, sol tarafındaki nesnenin sağ tarafındaki constructor fonksiyonunun bir instance'ı olup olmadığını kontrol eder ve true veya false döndürür.

function Araba(marka, model) {
  this.marka = marka;
  this.model = model;
}

let araba = new Araba('Toyota', 'Corolla');
console.log(araba instanceof Araba); // true
console.log(araba instanceof Object); // true (Object en üst class olduğu için)

Instances (Örnekler)

JavaScript'te, bir constructor fonksiyonu aracılığıyla oluşturulan nesnelere "instance" adı verilir. Bu instance'lar, aynı constructor fonksiyonunu kullanarak oluşturulmuş diğer nesnelerden farklı olabilirler. Bir constructor fonksiyonundan oluşturulan her nesne, o constructor fonksiyonunun bir instance'ıdır.

function Kitap(baslik, yazar) {
  this.baslik = baslik;
  this.yazar = yazar;
}

let kitap1 = new Kitap('Harry Potter', 'J.K. Rowling');
let kitap2 = new Kitap('Sherlock Holmes', 'Arthur Conan Doyle');

console.log(kitap1 instanceof Kitap); // true
console.log(kitap2 instanceof Kitap); // true

Sonuç

new anahtar kelimesi, constructor fonksiyonlarını (yapıcı fonksiyonlar) kullanarak yeni nesneler oluşturmak için kullanılır. Bu nesneler, belirli constructor fonksiyonlarına ait instance'lar olarak kabul edilir. instanceof operatörü ise bir nesnenin belirli bir constructor fonksiyonundan oluşturulup oluşturulmadığını kontrol etmek için kullanılır. Bu yapılar, JavaScript programlamasında nesne odaklı programlama ve nesneler arası ilişkiler kurmak için önemli bir rol oynar.