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 bilgilerilet 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).
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.
functionisciOlustur (isim,gorev,maas) {return { isim,//isim:isim yazmaya gerek yok gorev,//gorev:gorevyazmaya gerek yok maas //maas:maas yazmaya gerek yok };}let birIsci =isciOlustur('Ahmet','Usta','10.000')alert( birIsci.isim );alert( birIsci.maas);
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.