JavaScript Nesne Yapıcıları

Örnek

function Person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}

Kişisel olarak deneyin

Yapıcı fonksiyonları büyük harflerle adlandırmak alışkanlık olmalıdır.

nesne türü (plan) (sınıf)

Önceki bölümdeki örnekler sınırlıdır. Sadece tek bir nesne oluştururlar.

Aynı 'tür'ün birçok nesnesinin "plan”.

bir 'nesne türü' oluşturmanın yolu,nesne yapıcı fonksiyonu

yukarıdaki örnekte,fonksiyon Person() nesne yapıcı fonksiyonudur.

Yoluyla new kelime ile çağrılan yapıcı fonksiyon, aynı türdeki nesneler oluşturabilir:

var myFather = new Person("Bill", "Gates", 62, "blue");
var myMother = new Person("Steve", "Jobs", 56, "green");

Kişisel olarak deneyin

this kelime olarak bilinir

JavaScript'te this nesnelerin 'sahibi' olan şeylerdir.

this değer, nesnede kullanıldığında, bu nesne kendisidir.

Yapıcı fonksiyon içinde,this Değer içermeyen bir şeydir. Yeni bir nesne oluşturulduğunda, bu bu yeni nesnenin bu değeri olur.

Lütfen dikkat edin this Bu bir değişkendir. Bir anahtar kelimedır. this'in değerini değiştiremezsiniz.

Nesneye özellik eklemek

Mevcut bir nesneye yeni bir özellik eklemek çok basittir:

Örnek

myFather.nationality = "English";

Kişisel olarak deneyin

Yeni özellik myFather'a eklenmiştir. myMother'a da, veya herhangi bir diğer person nesnesine de eklenmemiştir.

Nesneye yöntem eklemek

Mevcut bir nesneye yeni bir yöntem eklemek çok basittir:

Örnek

myFather.name = function () {
    return this.firstName + " " + this.lastName;
};

Kişisel olarak deneyin

Yeni yöntem myFather'a eklenmiştir. myMother'a da, veya herhangi bir diğer person nesnesine de eklenmemiştir.

Yapıcıya özellik eklemek

Mevcut bir nesneye yeni bir özellik eklemekle farklı olarak, nesne yapıcı fonksiyonuna yeni bir özellik ekleyemezsiniz:

Örnek

Person.nationality = "English";

Kişisel olarak deneyin

Yapıcıya yeni bir özellik eklemek için, bu özelliği yapıcı fonksiyonuna eklemeniz gerekmektedir:

Örnek

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.nationality = "English";
}

Kişisel olarak deneyin

Bu şekilde nesne özellikleri varsayılan değerlere sahip olabilir.

Yapıcıya yöntem eklemek

Yapıcı fonksiyonunuz da yöntemleri tanımlayabilir:

Örnek

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.name = function() {return this.firstName + " " + this.lastName;};
}

Kişisel olarak deneyin

Mevcut bir nesneye yeni bir yöntem eklemekle farklı olarak, nesne yapıcı fonksiyonuna yeni bir yöntem ekleyemezsiniz.

Yapıcı fonksiyon içine bir yöntem eklemek zorundasınız:

Örnek

function Person(firstName, lastName, age, eyeColor) {
    this.firstName = firstName;  
    this.lastName = lastName;
    this.age = age;
    this.eyeColor = eyeColor;
    this.changeName = function (name) {
        this.lastName = name;
    };
}

changeName() fonksiyonu, name'yi person nesnesinin lastName özelliğine atar.

Şimdi deneyebilirsiniz:

myMother.changeName("Jobs");

Kişisel olarak deneyin

tarafından myMother değiştirmek için thisJavaScript şu anda hangi personeli işlediğini bilmek için.

İçsel JavaScript yapılandırıcıları

JavaScript temel nesneler için kullanılan yapılandırıcıları sağlar:

Örnek

var x1 = new Object();    // Yeni bir Object nesnesi
var x2 = new String();    // Yeni bir String nesnesi
var x3 = new Number();    // Yeni bir Number nesnesi
var x4 = new Boolean();   // Yeni bir Boolean nesnesi
var x5 = new Array();     // Yeni bir Array nesnesi
var x6 = new RegExp();    // Yeni bir RegExp nesnesi
var x7 = new Function();  // Yeni bir Function nesnesi
var x8 = new Date();      // Yeni bir Date nesnesi

Kişisel olarak deneyin

Math() Nesneler bu listede değildir. Math genel nesnesidir.new Anahtar kelimeler Math için kullanılamaz.

Biliyor musunuz?

Aşağıda gördüğünüz gibi, JavaScript temel veri türleri dize, sayı ve boolean nesne sürümlerini sağlar. Ancak karmaşık nesneler oluşturmak için bir neden yoktur! Temel değerler çok daha hızlıdır!

Dize ifadesi kullanın {} değiştirmek için new Object()

Dize ifadesi kullanın "" değiştirmek için new String()

Dize ifadesi yerine kullanın Number()

Dize ifadesi yerine kullanın new Boolean()

Dize ifadesi kullanın [] değiştirmek için new Array()

Desen ifadesi yerine kullanın new RexExp()

Fonksiyon ifadesi kullanın () {} değiştirmek için new Function()

Örnek

var x1 = {};            // Yeni nesne
var x2 = "";            // Yeni başlangıç dize
var x3 = 0;             // Yeni başlangıç sayısal değeri
var x4 = false;         // Yeni başlangıç逻辑 değeri
var x5 = [];            // Yeni dizi nesnesi
var x6 = /()/           // Yeni düzenli ifade nesnesi
var x7 = function(){};  // Yeni fonksiyon nesnesi

Kişisel olarak deneyin

Dizgi Nesnesi

Genellikle, dizgi değerleri temel değerler olarak oluşturulur: var firstName = "Bill"

Ancak aynı zamanda new Anahtar kelime ile dizgi nesne oluşturma: var firstName = new String("Bill")

Lütfen JS DizgiBu bölümde neden dizgi değerlerini nesne olarak oluşturmadan öğrenin.

Sayısal Nesnesi

Genellikle, sayısal değerler temel değerler olarak oluşturulur: var x = 456

Ancak aynı zamanda new Anahtar kelime ile sayısal nesne oluşturma: var x = new Number(456)

Lütfen JS SayısalBu bölümde neden sayısal değerleri nesne olarak oluşturmadan öğrenin.

Boolean Nesnesi

Genellikle, mantıksal değerler temel değerler olarak oluşturulur: var x = false

Ancak aynı zamanda new Anahtar kelime ile mantıksal nesne oluşturma: var x = new Boolean(false)

Lütfen JS MantıksalBu bölümde neden mantıksal değerleri nesne olarak oluşturmadan öğrenin.