Menu
CoddyTech

Yapıcı Fonksiyonlar

Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 4 / 56.

Yapıcı işlevler, aynı yapıya ve davranışa sahip birden fazla nesne oluşturmanı sağlayan JavaScript'teki özel işlevlerdir.

Bir Person için yapıcı işlev tanımlayın:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.greet = function() {
    return "Hello, my name is " + this.name;
  };
}

Constructor'ı kullanarak yeni bir Person nesnesi oluştur:

const john = new Person("John", 30);
const tyler = new Person("Tyler", 35);

Bir constructor'ı new anahtar sözcüğüyle çağır. new boş bir nesne oluşturur, this bu nesneyi gösterecek şekilde fonksiyonu çalıştırır ve nesneyi döndürür; böylece this.name = name, adı john üzerinde saklar. Gelenek olarak, Person ve Car gibi constructor adları büyük harfle başlar; bu, new ile çağrılmalarının amaçlandığını gösterir.

new olmadan Person("John", 30) sıradan bir fonksiyon çağrısıdır: hiçbir nesne oluşturulmaz, this global nesnedir (veya strict mode'da undefined) ve çağrı undefined döndürür.

Yukarıdaki kodu çalıştırdıktan sonra john, şu özelliklere sahip bir nesnedir:

// john nesnesi şunları içerir:
{
  name: "John",
  age: 30,
  greet: function() { return "Hello, my name is John"; }
}

Özelliklere erişin ve metotları çağırın:

console.log(john.name); // Çıktı: John
console.log(john.greet()); // Çıktı: Hello, my name is John
challenge icon

Görev

  1. Üç bağımsız değişken alan Book adlı bir kurucu fonksiyon oluştur:
  • title (String)
  • author (String)
  • pages (Number)

Fonksiyon, bunları oluşturulan nesnenin özellikleri olarak ayarlamalıdır. 

    2. Kitap hakkında bazı bilgiler içeren bir dize döndüren getSummary adlı bir metot ekle: this.title + " was written by " + this.author + " and has " + this.pages + " pages";

Kendin dene

// TODO: Üç argüman (title, author, pages) alan Book adlı bir kurucu fonksiyon oluşturun


// TODO: Bunları oluşturulan nesnenin özellikleri olarak ayarlayın


// TODO: Kitap hakkında bazı bilgiler içeren bir dize döndüren getSummary adlı bir metot ekleyin.
// Örneğin: Harry Potter was written by Rowling and has 500 pages


// Aşağıdaki kodu değiştirmeyin
const inputTitle = inp[0];          // İlk satır: kitap başlığı
const inputAuthor = inp[1];         // İkinci satır: yazar  
const inputPages = parseInt(inp[2]);// Üçüncü satır: sayfa sayısı

const book = new Book(inputTitle, inputAuthor, inputPages);
console.log(book.getSummary());
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online JavaScript derleyicisi