JavaScript Oluşturucu İşlevi (Örneklerle)

Bu eğitimde, örnekler yardımıyla JavaScript yapıcı işlevi hakkında bilgi edineceksiniz.

JavaScript'te, nesneler oluşturmak için bir yapıcı işlevi kullanılır. Örneğin,

 // constructor function function Person () ( this.name = 'John', this.age = 23 ) // create an object const person = new Person();

Yukarıdaki örnekte, function Person()bir nesne yapıcı işlevidir.

Bir yapıcı işlevden bir nesne oluşturmak için newanahtar kelimeyi kullanırız .

Not : Yapıcı işlevinizin ilk harfini büyük harfle yazmak iyi bir uygulama olarak kabul edilir.

Yapıcı İşleviyle Birden Çok Nesne Oluşturun

JavaScript'te, bir yapıcı işlevden birden çok nesne oluşturabilirsiniz. Örneğin,

 // constructor function function Person () ( this.name = 'John', this.age = 23, this.greet = function () ( console.log('hello'); ) ) // create objects const person1 = new Person(); const person2 = new Person(); // access properties console.log(person1.name); // John console.log(person2.name); // John

Yukarıdaki programda, aynı yapıcı işlevi kullanılarak iki nesne oluşturulur.

JavaScript this Keyword

JavaScript'te, thisbir yapıcı işlevinde anahtar sözcük kullanıldığında this, nesne oluşturulduğunda nesneyi ifade eder. Örneğin,

 // constructor function function Person () ( this.name = 'John', ) // create object const person1 = new Person(); // access properties console.log(person1.name); // John

Bu nedenle, bir nesne özelliklere eriştiğinde, özelliğe doğrudan person1.name.

JavaScript Oluşturucu İşlev Parametreleri

Ayrıca parametrelerle bir yapıcı işlevi de oluşturabilirsiniz. Örneğin,

 // constructor function function Person (person_name, person_age, person_gender) ( // assigning parameter values to the calling object this.name = person_name, this.age = person_age, this.gender = person_gender, this.greet = function () ( return ('Hi' + ' ' + this.name); ) ) // creating objects const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'female'); // accessing properties console.log(person1.name); // "John" console.log(person2.name); // "Sam" 

Yukarıdaki örnekte, nesnenin yaratılması sırasında yapıcı işlevine argümanlar ilettik.

 const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'male');

Bu, her nesnenin farklı özelliklere sahip olmasını sağlar. Yukarıda gösterildiği gibi,

console.log(person1.name); John verir

console.log(person2.name); Sam'e verir

Nesneler Oluşturun: Yapıcı İşlev Vs Nesne Değişmez Değeri

  • Nesne Değişmezi, genellikle tek bir nesne oluşturmak için kullanılır. Yapıcı işlevi, birden çok nesne oluşturmak istiyorsanız kullanışlıdır. Örneğin,
 // using object literal let person = ( name: 'Sam' )
 // using constructor function function Person () ( this.name = 'Sam' ) let person1 = new Person(); let person2 = new Person();
  • Yapıcı işlevinden oluşturulan her nesne benzersizdir. Yapıcı işleviyle aynı özelliklere sahip olabilir veya belirli bir nesneye yeni bir özellik ekleyebilirsiniz. Örneğin,
 // using constructor function function Person () ( this.name = 'Sam' ) let person1 = new Person(); let person2 = new Person(); // adding new property to person1 person1.age = 20;

Artık bu ageözellik person1nesneye özeldir ve nesne için mevcut değildir person2.

Bununla birlikte, bir nesne değişmez bir nesne ile oluşturulursa ve bu nesne değeriyle bir değişken tanımlanırsa, değişken değerindeki herhangi bir değişiklik orijinal nesneyi değiştirir. Örneğin,

 // using object lateral let person = ( name: 'Sam' ) console.log(person.name); // Sam let student = person; // changes the property of an object student.name = 'John'; // changes the origins object property console.log(person.name); // John

Bir nesne değişmez bir nesne ile oluşturulduğunda, bu nesneden türetilen herhangi bir nesne değişkeni, orijinal nesnenin bir klonu olarak hareket edecektir. Dolayısıyla, bir nesnede yaptığınız herhangi bir değişiklik diğer nesneye de yansıyacaktır.

Bir Nesneye Özellikler ve Yöntemler Ekleme

Bunun gibi bir nesneye özellikler veya yöntemler ekleyebilirsiniz:

 // constructor function function Person () ( this.name = 'John', this.age = 23 ) // creating objects let person1 = new Person(); let person2 = new Person(); // adding property to person1 object person1.gender = 'male'; // adding method to person1 object person1.greet = function () ( console.log('hello'); ) person1.greet(); // hello // Error code // person2 doesn't have greet() method person2.greet();

Çıktı

 merhaba Yakalanmamış TypeError: person2.greet bir işlev değil

Yukarıdaki örnekte, nesneye yeni bir özellik genderve yeni bir yöntem greet()eklenmiştir person1.

Ancak, bu yeni özellik ve yöntem yalnızca person1. Sen erişemez genderya greet()dan person2. Bu nedenle, erişmeye çalıştığımızda program hata veriyorperson2.greet();

JavaScript Nesne Prototipi

Bir prototip kullanarak bir yapıcı işlevine özellikler ve yöntemler de ekleyebilirsiniz . Örneğin,

 // constructor function function Person () ( this.name = 'John', this.age = 23 ) // creating objects let person1 = new Person(); let person2 = new Person(); // adding new property to constructor function Person.prototype.gender = 'Male'; console.log(person1.gender); // Male console.log(person2.gender); // Male

Prototipler hakkında daha fazla bilgi edinmek için JavaScript Prototype sayfasını ziyaret edin.

JavaScript Yerleşik Oluşturucular

JavaScript ayrıca yerleşik kuruculara sahiptir. Onlardan bazıları:

 let a = new Object(); // A new Object object let b = new String(); // A new String object let c = new Number(); // A new Number object let d = new Boolean(); // A new Boolean object

JavaScript'te, dizeler şu şekilde nesne olarak oluşturulabilir:

 const name = new String ('John'); console.log(name); // "John"

JavaScript'te, sayılar şu şekilde nesne olarak oluşturulabilir:

 const number = new Number (57); console.log(number); // 57

JavaScript'te, boole'ler aşağıdaki yöntemlerle nesneler olarak oluşturulabilir:

 const count = new Boolean(true); console.log(count); // true

Not : İlkel veri türlerini kullanmanız ve bunları const name = 'John';, const number = 57;ve gibi normal bir şekilde oluşturmanız önerilir.const count = true;

Programı yavaşlattıkları için dizeleri, sayıları ve boole değerlerini nesne olarak bildirmemelisiniz.

Not : JavaScript'te, anahtar kelime classES6'da (ES2015) tanıtıldı ve bu da nesneler oluşturmamıza izin veriyor. Sınıflar, JavaScript'teki yapıcı işlevlere benzer. Daha fazla bilgi edinmek için JavaScript Derslerini ziyaret edin.

Ilginç makaleler...