JavaScript Ders 6 – Nesneler (Objects)

Nesneler, ilgili verileri ve bu verilere uygulanan işlevleri bir araya getiren karmaşık veri yapılarıdır.

Nesne Nedir?

Tanım: Bir nesne, anahtar-değer çiftlerinden oluşan bir koleksiyondur. Anahtarlar genellikle stringlerdir (veya Symbol’ler), değerler ise herhangi bir JavaScript veri tipi olabilir (sayı, string, boolean, dizi, başka bir nesne vb.).

Neden Nesne Kullanmalıyız? Verileri organize etmek, ilgili verileri ve işlevleri bir arada tutmak ve daha karmaşık programlar oluşturmak için nesneler idealdir.

Nesne Oluşturma

Nesne Literal: En yaygın yöntemdir. Süslü parantezler {} içinde anahtar-değer çiftleri virgülle ayrılır.

JavaScript
let ogrenci = {
  ad: "Ali",
  soyad: "Yılmaz",
  yas: 20,
  notlar: [85, 90, 78],
  mezunMu: false
};

Yapıcı (Constructor) Fonksiyonları: Nesneler oluşturmak için kullanılan özel fonksiyonlardır.

JavaScript
function Ogrenci(ad, soyad, yas) {
  this.ad = ad;
  this.soyad = soyad;
  this.yas = yas;
  this.notlar = [];
  this.mezunMu = false;
}

let ogrenci1 = new Ogrenci("Ayşe", "Demir", 22);

Object() Constructor: Daha az yaygın kullanılan bir yöntemdir.

JavaScript
let kisi = new Object();
kisi.ad = "Veli";
kisi.soyad = "Can";

Nesne Özelliklerine Erişim

Noktalama İşareti (.): Anahtar adını nokta ile belirtin.

JavaScript
console.log(ogrenci.ad); // "Ali" çıktısı verir
console.log(ogrenci.yas); // 20 çıktısı verir

Köşeli Parantez Notasyonu ([]): Anahtar adını string olarak köşeli parantezler içinde belirtin. Özellikle anahtar adı değişkensel ise veya boşluk içeriyorsa kullanılır.

JavaScript
let ogrenciAd = "ad";
console.log(ogrenci[ogrenciAd]); // "Ali" çıktısı verir

let ogrenciNesnesi = {
  "öğrenci adı": "Fatma",
  yas: 21
};
console.log(ogrenciNesnesi["öğrenci adı"]); // "Fatma" çıktısı verir

this Anahtar Kelimesi

Anlamı: Bir nesne içindeki bir metot çağrıldığında, this anahtar kelimesi o nesneyi referans eder.

Örnek:

JavaScript
let ogrenci = {
  ad: "Ali",
  soyad: "Yılmaz",
  tanit: function() {
    console.log("Benim adım " + this.ad + " " + this.soyad);
  }
};

ogrenci.tanit(); // "Benim adım Ali Yılmaz" çıktısı verir

Nesne Metotları (Object Methods)

Tanım: Bir nesnenin içindeki fonksiyonlardır. Nesnenin davranışlarını tanımlar.

Örnek:

JavaScript
let ogrenci = {
  ad: "Ali",
  soyad: "Yılmaz",
  tanit: function() {
    console.log("Benim adım " + this.ad + " " + this.soyad);
  },
  notEkle: function(not) {
    this.notlar.push(not);
  }
};

ogrenci.tanit(); // "Benim adım Ali Yılmaz" çıktısı verir
ogrenci.notEkle(90);
console.log(ogrenci.notlar); // [85, 90, 78, 90] çıktısı verir

Prototype Zinciri (Prototype Chain)

Tanım: JavaScript’te her nesnenin bir prototipine referansı vardır. Bir nesneye erişmeye çalışırken ve o özellik bulunamazsa, JavaScript prototip zincirini yukarı doğru tarar ve özelliği bulmaya çalışır.

Amacı: Kodun yeniden kullanılabilirliğini artırmak ve ortak özellikleri paylaşmak için kullanılır.

JSON Formatı (JavaScript Object Notation)

Tanım: Veri alışverişinde kullanılan hafif bir veri formatıdır. JavaScript nesnelerine benzer bir yapıya sahiptir.

Kullanımı: Web servislerinden veri almak veya verileri web servisine göndermek için yaygın olarak kullanılır.

Örnek:

JavaScript
{
  "ad": "Ayşe",
  "soyad": "Demir",
  "yas": 22
}

Kaynak: https://developer.mozilla.org/en-US/docs/Web/JavaScript