Menu
Coddy logo textTech

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ı fonksiyonlar (Constructor functions), JavaScript'te aynı yapı ve davranışa sahip birden fazla nesne oluşturmanıza olanak tanıyan özel fonksiyonlardır.

Bir Person için bir yapıcı (constructor) fonksiyon tanımlayın:

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

Yapıcıyı (constructor) kullanarak yeni bir Person nesnesi oluşturun:

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

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. Üç argüman alan Book adında bir yapıcı (constructor) fonksiyon oluşturun:
  • title (String)
  • author (String)
  • pages (Sayı)

Fonksiyon, bunları oluşturulan nesne üzerinde özellikler (properties) olarak ayarlamalıdır. 

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

Kopya kağıdı

Yapıcı (constructor) fonksiyonlar, aynı yapıya sahip birden fazla nesne oluşturur. Örnekler oluşturmak için new anahtar kelimesini kullanın:

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

const john = new Person("John", 30);
console.log(john.name); // Çıktı: John
console.log(john.greet()); // Çıktı: Hello, my name is John

Kendin dene

// YAPILACAK: Üç argüman (title, author, pages) alan Book adında bir yapıcı (constructor) fonksiyon oluşturun


// YAPILACAK: Bunları oluşturulan nesne üzerinde özellikler (properties) olarak ayarlayın


// YAPILACAK: Kitap hakkında bazı bilgiler içeren bir dize (string) döndüren getSummary adında 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];          // Birinci 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