PHP’de bşr Dog sınıfın varsa bu sınıfın örneğini $fido diye bir değişken tanımlayıp oluşturabilirsin.
// PHP
$fido = new Dog();
Javascriptede benzer yapıdadır.
// JavaScript
var fido = new Dog();
Önemli bir fark vardır oda Dog Javascriptte bir sınıf değildir.Çünkü dilin yapısında sınıf kavramı yoktur.Dog sadece bir fonksiyondur.Nesne oluşturmak için yapıcı fonksiyonlar vardır.
Sözdizimsel olarak düzenli fonksiyonlar ile yapıcı fonksiyonlar arasında bir fark yoktur.Sadece amaçları farklıdır.Kodun okunabilirliği amacı ile ortak kongrelerde yapıcı fonksiyon adları büyük hece ile başlar şeklinde bir karar alınmış bizde bu karara uyuyoruz.
new operatörü ile bir fonksiyon çağırdığın zaman her zaman bir nesne döner.Nesne fonksiyonun gövdesi içinde this olarak bilinir.Hatırlayın aksi olmadığı takdirde (new operatörü olmadan) her fonksiyon return olmasa bile undefined bir değer döner.
function Dog() {
this.name = "Fido";
this.sayName = function () {
return "Woof! " + this.name;
};
}
var fido = new Dog();
fido.sayName(); // "Woof! Fido"
Not:Phpdeki gibi Javascripttede eğer bir argüman gönderilmeyecekse var fido=new Dog; kullanımı geçerli bir kullanımdır.
Eğer konsolda fido yazarsan, name ve sayName adında 2 özellik bulunduğunu görürsün.Bazı konsollarda bunların yerine __proto__ adında bir özellik görülür, ama şimdilik gözardı edelim onu.
sayName özelliğine göz atarsanız bir fonksiyon olarak işaretlendiğini görürsün.Javascriptte fonksiyonlar birer nesnedir.Onlar özellik olarak atanabilirler.Bu durumda onlara metod diyebilirsin.Javascriptte metodlar ile özellikler arasında gerçekte pek bir fark yoktur.Sadece metodlar cağrılabilir özelliklerdir.
Yanlışım , eksiğim bilmediğim varsa (affola) yorum atarak giderebilirsiniz.

Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+Share on TumblrEmail this to someone