Javascirpt Fonksiyon tanımlama

esbejk

Öğrenci
Katılım
29 Eylül 2013
Mesajlar
9
Reaksiyon puanı
0
Puanları
1
1- var xxx = function(e){

};
Bu tanımlama da yapılmak istenen ne.Bu kullanım tarzı bir fonksiyona parametre geçirirken kullandığımız fonksiyon ile aynı görevde mi?

2-(function(){

})();
Burada normal fonksiyon tanımından ne fark var.birde en son bir çift parantez daha koyuyoruz noktalı virgülü koymadan önce koymayınca çalışmıyor.onu koymanın nedeni ne?

3-$(function(){

});
bu tanımlamanın amacı ne

Javascripte bakıyorum herşey normal ama bu tanımlamalara bir türlü alışamadım ne işe yaradıklarınıda tam olarak anlayamadım.
Eğer bir de basit örnekler ile anlatırsanız sevinirim.
 

maakbay

Öğrenci
Katılım
29 Kasım 2013
Mesajlar
23
Reaksiyon puanı
0
Puanları
0
Bak dostum,
javascriptte, fonksiyonlar da diğer tüm tipler gibi değişkenler ile belirtilir. ancak diğer dillerden geçenler için kolaylık olması sebebiyle bazı değişik şekillerde fonksiyon tanımlamaları yapılabilir.
Çoğu dilde ve javascriptte standart olarak: function fonksiyon_adi(parametre1,paremetre2...){...kod...} kullanılır.
ancak ayrıca javascriptte, değişken olarak da fonksiyon tanımlanabilir.
Mesela bir değişken a=1234 gibi tanımlanıyorsa, fonksiyon da a=function(){} şeklinde tanımlanabilir.
yani bu tanımlama tipinde değişken adı "a" değeri 1234 veya ikincisinde adı yine "a" eğeri "function(){}" olur.
Şimdi gelelim şu parantez içindeki olaya, şu kullanım (function(a){alert(a)})("merhaba"); alarm ile "merhaba" yazdırır. ama nasıl?

öncelikle normal olarak bunu nasıl yapardık?
a="merhaba"; alert(a);

fonksiyon ile nasıl yapardık?
function alarm(a){ alert(a);}
alarm("merhaba");

bahsettiğim fonkisyon tanımlama şekli ile:
alarm=function(a){alert(a);}
alarm("merhaba");

ancak parantez içinde kullanım şekli ise:
alarm=function(a){alert(a);}
ile alarmı önceden tanımlamak yerine: (...fonksiyon...)("merhaba"); yani, o anlık soldaki parantez içinde bir fonkisyon tanımlayıp, hemen ardından çağırarak kullanabiliriz. bu şu kullanıma benzer : alert((("merhaba dünya").split(" ")).pop()) ile a="merhaba dünya"; parcalanmis=a.split(" "); dny=a.pop(); alert(dny);
ikisi de dünya yazdırır ancak birincisinde parantez içi kullnılarak değişken o anlık oluşturulmuş diğerinde ise değişkenler önceden oluşturularak işlem yapılmıştır. eğer srekli tekrar tekrar çağırılacak bir değişken ise birinci ancak sadece bir kere çağırılacak bir değişkense ikinci kullanım daha mantıklı olur. umarım yardımcı olabilmişimdir.
 
Üst