this Deyimi ile Nesnenin Kendini Referans Etmesi

Nesnelerin metotlarını işlevsel hale getirmek için nesnenin kendini referans etmesi çok kıymetlidir. Önceki örneklerden dönüştürelim.

let ogrenci = {
    no:2301,
    isim:'Asya',
    sinif:7,
    kendiniTanit() {
        return `Ben ${this.isim}, numaram ${this.no}, sinifim ${this.sinif}`;
    }
};
alert( ogrenci.kendiniTanit() ); // Asya öğrencisinin bilgileri

let yeniOgrenci = Object.assign( {}, ogrenci );
yeniOgrenci.no = 1491;
yeniOgrenci.isim = 'Ali';
yeniOgrenci.sinif = 8;
alert( yeniOgrenci.kendiniTanit() ); // Ali öğrencisinin bilgileri

Nesnenin adı yerine this deyimi ile nesnenin kendisini referans ettik. Metotları haricen oluşturup nesneye değer olarak da atayabiliriz. Yukarıdaki metodu harici bir fonksiyon ile de dönüştürebiliriz. (Çok kullanışlı olmasa da).

function kendiniTanit (obj) {
    return `Ben ${obj.isim}, numaram ${obj.no}, sinifim ${obj.sinif}`;
}

let ogrenci = {
    no:2301,
    isim:'Asya',
    sinif:7,
    kendiniTanit:kendiniTanit(this)
    }
};
alert( ogrenci.kendiniTanit() );

Boş nesneleri fonksiyon olarak "anahtar:değer" ikilileri ile değer döndürerek oluşturmak daha kullanışlıdır. Bu da ES6 ile gelen bir yeniliktir. Örnek.

Bunu yapabilmemizi sağlayan olay JavaScript dilinde fonksiyonların bir nesne olarak tasarlanmış olmasıdır.

this deyimi sadece nesneleri referans etmez. Referans ettiği öğe, yürütülme esnasında . işaretinden önce olması gereken öğedir. this deyiminin sadece nesne ile sınırlı olmadığını bilmeniz gerekir. Şu örneklere bakınız.

this deyimi, koşullu operatör veya ok fonksiyonlarıyla kullanılırsa this kaybolur, nesneyi referans edemez. Örnek.

this dile ait bir deyimdir (for, if ... gibi) referans ettiği öğeyi biz kontrol edemeyiz.

Last updated