İnternet Programlama-I JAVASCRİPT -İŞLEVLER-
İşlev Nedir? Diğer programlama dillerinde olduğu gibi, Javascript’ de işlev yada başka bir deyişle fonksiyon adı verilen olanaklara sıkça başvurmaktadır. İşlev, belli bir amaca yönelik bir program parçacığıdır. En önemli avantajı, aynı kodların farklı programlarda defalarca kullanılabilmesini sağlamasıdır. Örneğin, bir web sayfasına veri girişlerinin yapıldığını varsayalım. Alanların sayısal olmasını denetlemek istersek her alan için bu denetleme kodlarını yazmaya gerek yoktur. İşlev olarak bir kere yazılır ve her gerektiğinde bu işlev çağrılarak kullanılır.
İşlevlerin Tanımlanması Javascript işlevleri belirli bir yapıda tanımlanır. İşlevleri belirlemek için function deyiminden yararlanılır. function adı ([parametreler]) { deyimler }
İşlevlerin Tanımlanması Her işlevim mutlaka bir ismi olmalıdır. Aksi taktirde, çağrılması söz konusu olamaz. İşlev isimleri alfa sayısal karakterlerden oluşabilir. Özel işaretlerden sadece ( _ ) işaretine izin verilir. İşlev isimleri alfabetik karakterle başlamalıdır. Sayısal karakter işlev isminin ilk karakteri olamaz. Aynı isimle iki işlev olamaz!!! İşlev isimleri büyük küçük harf ayrımına duyarlıdır. AnaHesap ve anahesap farklı iki işlev adıdır.
İşlevlerin Tanımlanması İşlevler çalıştırıldığında, herhangi bir değer elde etmeden sadece belirli bir işlemi yerine getirebilir. Örneğin, bir mesajın yazdırılması için bir işlev tanımlanabilir. Bu işlevin, kendisinin çağrıldığı yere her hangi bir sonuç göndermesi, bir başka deyişle döndürmesi gerekmeyebilir. Bazı işlevler ise, çağrıldığı yere bir değer döndürür. Böyle durumlarda return deyimi ile birlikte kullanılır. return ifade
İşlevlerin Tanımlanması <script language="javascript"> function merhaba ( ){ alert ("Merhaba LMYO!"); } merhaba( ); </script>
HTML içinde İşlev Çalıştırma Bir işlevi Javascript programı içinde tanımlayıp çalıştırabildiğimiz gibi HTML kodları içinde çağrılarak çalıştırılması da mümkündür. Ancak bunun için bir olayın belirlenmiş olması gerekmektedir. Örneğin pencere üzerinde yer alan bir düğmenin tıklatılması durumunda bir işlevin çalışması sağlanabilir. Bunun için HTML kodları içinde tanım yapılmalıdır. <INPUT TYPE=“button” Value=“Düğme Başlığı” onClick= “işlev adı”>
HTML içinde İşlev Çalıştırma <html> <head> <script language="javascript"> function merhaba ( ){ alert ("Merhaba LMYO!");} </script> </head> <body> <form> <input type="button" Value="Tıklayın" onclick="merhaba( )" > </form> </body> </html>
İşlevlere Bir Değer Geçirme Şu ana kadar gördüğümüz işlevler bir parametre içermemekteydiler. Yani işlev çalışır çalışmaz bir eylem yerine getirilmekte, çağrıldığı konuma herhangi bir değer geri dönmemektedir. Bir işleve herhangi bir değerin gönderilmesi ve işlev içinde bir takım işlemler yerine getirildikten sonra çağrıldığı konuma bir başka değer üreterek geri dönmesi isteniyorsa parametre geçirilmesi olayından söz etmek gerekecektir.
İşlevlere Bir Değer Geçirme <html> <head> <script language="javascript"> function merhaba(mesaj) { alert (mesaj);} </script> </head> <body> <form> <input type="button" Value="Tıklayın" onclick="merhaba('merhaba Türkiye!')" > </form> </body> </html>
İşlevlere Bir Değer Geçirme <html> <head> <script language="javascript"> function hesapla(a,b) { alert (a+b);} </script> </head> <body> Hesaplama yapmak için butona tıklayınız… <form> <input type="button" Value="Tıklayın" onclick=“hesapla(5,7)" > </form> </body> </html>
İşlevden Bir Değer Döndürme Bir işlev çalıştırıldığında, işlevden elde edilen sonucun bu işlevin yer aldığı konuma aktarılması söz konusu ise, biraz daha farklı bir yol izlenecektir. İşlev içinde return () deyimi yerleştirilerek, işlev içinde elde edilen sonuçlar işlev dışına aktarılabilir.
İşlevden Bir Değer Döndürme <script language="javascript"> a=3;b=-2;c=5; var sonuc= hesapla(a,b,c); document.write ("a:" +a+ "<br>"); document.write ("b:"+b+ "<br>"); document.write ("c:" +c+ "<br>"); document.write ("discriminant: " + sonuc); function hesapla(a,b,c) { var kok=(b^2-4*a*c)/2*a return (kok); } </script>
İşlevden Bir Değer Döndürme Program içinde topla ve cikar adında iki fonksiyon oluşturup program içinde aldığı parametrelere göre değerleri hesaplayıp ekrana gösteren programı yazınız…
İşlevden Bir Değer Döndürme <script language="javascript"> function topla(sayi1, sayi2){ var sonuc = sayi1+sayi2; document.write("toplama sonucu: "+sonuc); } function cıkar(sayi1, sayi2){ var sonuc = sayi1-sayi2; document.write(" Çıkarma sonucu:"+sonuc); } var a = 7; var b = 3; topla(a,b); cıkar(a,b); </script>
Yeni Nesnelerin Yaratılması Javascript nesnelere dayalı bir programlama dili kabul edilir. Her şey bir nesne olarak değerlendirilir. Örneğin, tarayıcı bir nesnedir. Ayrıca pencereler, bağlantılar (link), formlar, diziler vb gibi bileşenler birer nesnedir. Bu nesneleri Javascript hazır olarak kullanıcıya sunar. Ancak kullanıcı kendi gereksinimlerine göre kendi nesnelerini yaratabilir. Daha da ileri giderek, bu nesnelere ilişkin özellikleri ve yöntemleri de tanımlayabilir.
Kullanıcı Nesneleri Kullanıcılar (yani Javascript programcıları) kendi nesnelerini yaratabilmek için belirli bir yol izlemek durumundadır. Bunun için, Bir işlev tanımlanır New terimi yardımıyla işlev bir nesne olarak tanımlanır. Nesne adı = new işlev adı () biçiminde bir tanım yapılır.
Kullanıcı Nesneleri Örneğin müşteri isimli bir nesne yaratmak istiyoruz. Bunun için aşağıda belirtildiği biçimde bir tanım yapmak yeterlidir: musteri = new nesne_işlev(); function nesne_işlev() { } Birinci satırda nesne yaratılmakta, diğer satırda ise bu nesneye ilişkin işlev tanımlanmaktadır. Eğer nesneye ait özelliklerin tanımlanması söz konusu olsaydı bu işlev içine kaydedilecekti. Ancak bu işlevin, herhangi bir işleve yer vermeden,
Kullanıcı Nesneleri müşteri = new Object(); biçiminde de yaratılabilir. Bir işleve bağlı olarak, birden fazla işlev tanımlanabilir. Örneğin, musteri yanı sıra, personel, ogrenci gibi nesnelerin yaratılması söz konusu ise aşağıda gösterildiği biçimde bir tanım yapılabilir. musteri = new nesne_işlev(); personel = new nesne_işlev(); ogrenci = new nesne_işlev(); function nesne_işlev() { }
Nesne Özelliklerinin Tanımlanması Bir nesne tanımlandıktan sonra, doğal olarak ona bazı özelliklerin kazandırılması söz konusu olabilir. Bunun için, nesne özelliklerinin belirlenmesi ve bu özelliklere değerlerin aktarılması gerekecektir. Nesne özellikleri, nesneyi tanımlayan işlev içinde tanımlanır. Söz konusu nesne özellikleri, Nesne.özellik = değer; Nesne Program içinde yaratılacak yeni nesnenin adı özellik Nesnenin özellikleri değer Özelliğin değeri biçiminde tanımlanır.
Nesne Özelliklerinin Tanımlanması İşlev içinde nesne adı doğrudan tanımlanabileceği gibi, nesne adı yerine This terimi kullanılabilir. This.özellik = değer: Nesne özelliklerinin işlev içinde tanımlanması gibi bir koşul yoktur. Gerek görülüyorsa, işlev dışında da özellikler tanımlanabilir ve değerler atanabilir.
Nesne Özelliklerinin Tanımlanması <SCRIPT LANGUAGE="Javascript"> musteri=new musteri_islev( ); // Nesne işlevi ve özellikleri tanımlanıyor... function musteri_islev() { this.adi = " Onur " this.soyadi = " Bulut " this.dogum_yili = " 1982 " } // Nesne özellikleri listeleniyor.. for (ozellik in musteri) document.write(ozellik + "<br>"); </SCRIPT>
Nesne Özelliklerinin Tanımlanması Yukarıdaki örnek programı, başka biçimde de düzenleyebiliriz. Özellikleri işlev içinde tanımlamıştık. Bunun yerine, işlev dışında tanımlayarak da kullanabiliriz. Program çalıştırıldığında sonuç olarak aynı değerleri elde edeceğiz.
Nesne Özelliklerinin Tanımlanması <SCRIPT LANGUAGE="Javascript"> musteri=new musteri_islev( ); // Nesne işlevi ve özellikleri tanımlanıyor... musteri.adi = " Onur " musteri.soyadi = " Bulut " musteri.dogum_yili = " 1982 " function musteri_islev(){ } // Nesne özellikleri listeleniyor.. for (ozellik in musteri) document.write(ozellik + "<br>"); </SCRIPT>
Yeni Yöntemlerin Yaratılması Javascript işlevlerinin bir diğer kullanılma yeri olarak kullanıcı tanımlı yöntemleri gösterebiliriz. Javascript nesneleriyle ilgili yöntemler doğrudan doğruya kullanılabilir. Ancak var olan yöntemler dışında, kullanıcı tanımlı yöntemleri kullanabilmek için, işlevler yardımıyla tanımlanması gerekecektir. Örneğin yeni bir nesne yaratacağız. Bu nesnenin adı ogrenci olsun. Bu nesneye ilişkin olarak, ogrenciliste() isimli bir yöntem oluşturacağız. Bu yöntem, nesnenin özelliklerini tarayıcıda listeleyecektir.
Yeni Yöntemlerin Yaratılması <SCRIPT LANGUAGE="Javascript"> ogrenci=new yeniogrenci("Hasan" , "1453" , "9-A"); ogrenci.ogrenciliste ( ); function ogrenciliste( ){ liste= "Adı: " + this.adi + "<br>"; liste+= "Okul No: " + this.okul_no + "<br>"; liste+= "Sınıf : " + this.sinif + "<br>"; document.write (liste);} function yeniogrenci (adi, okul_no, sinif){ this.adi = adi; this.okul_no= okul_no; this.sinif= sinif; this.ogrenciliste = ogrenciliste; } </SCRIPT>