You are currently browsing the archives for the java category.

Archive for the ‘java’ Category

Java Script Bir olaya birden çok işlev baglamak

Pazar, Mayıs 3rd, 2009

Bir olaya bir işlevi bağlamak için addEventListener(mozilla) yada
attachEvent(ie) işlevlerini kullanmamız yeterli.

nesne.addEventListener(olayAdı,,true/false)
nesne.attachEvent(olayAdı,);

IE’de adı olarak “onclick” vs. denilirken
MZ’de “click” vs. olarak belirtilir.

MZ’deki üçüncü girdi iÅŸlevin hangi olayın hangi aÅŸamasında çalışması gerektiÄŸini
belirtir.
true:capture
false:buble

Örnek:
<html>
<head>
<script language=”javascript”>
function i1()
{
alert(”birinci ”);
}
function i2()
{
alert(”ikinci ”);
}

function ayarla()
{
var n=document.getElementById(’tik1′);
if(n.attachEvent)
{
n.attachEvent(”onclick”,i1);
n.attachEvent(”onclick”,i2);
}
else if(n.addEventListener)
{
n.addEventListener(”click”,i1,false);
n.addEventListener(”click”,i2,false);
}
}
</script>
</head>
<body onload=”ayarla();”>
<button id=”tik1″>Tıkla</button>
</body>
</html>

Create Object methodu ayrıntılı açıklama

Pazar, Mayıs 3rd, 2009

1. Fonksıyon ıcınde tanımlanmıs fonksıyonlara yalnızca o fonksıyon ıcınden erısılebılır.. Bu bır nevı prıvate (ozel) metot yazmak gıbıdır..

PHP Kodu:
function ust(){
function
alt(){
alert(‘Burdayım!’);
}
}

// Hatalı kullanım.. ust fonksıyon dısında
// bu fonksıyonu kullanamayız
alt();

2. Fonksıyonlar ıcın gecerlı olan kural degıskenler ıcınde gecerlıdır. Fonksıyon ıcınde tanımlanmıs degısken fonksıyon dısında kullanılamaz.. Yalnız burda dıkkat edılmesı gereken bısey var,

PHP Kodu:
var degisken = ‘Bu evrensel bır degısken’;
degistir();
alert(degisken); // Degısken ıcerıgı degıstı

function degistir(){
degisken = ‘Sımdı ıse evrensel degıskenın ıcerıgını degıstırıyoruz’;
}

Eger yukardakı ornekte fonksıyon ıcındekı degıskenın basına var getırmıs olsaydık degısken evrensel degıl yalnızca o fonksıyon ıcınde kullanılan ozel (prıvate) bır degısken olacaktı..

PHP Kodu:
var degisken = ‘Bu evrensel bır degısken’;
degistir();
alert(degisken); // Degısken ıcerıgı degısmez

function degistir(){
var
degisken = ‘Bu artık yerel bır degısken’;
}

Bunu ozellıkle belırtıyorum cunku sık yapılan bır hata.. Bır fonksıyon yada nesneye ozgu olmasını ıstedıgınız degıskenlerın onune var getırın..

3. altında yenı nesne yaratmaya gelınce.. Bunun ıcın kullanılabılecek bı kac degısık yontem var..

a.

PHP Kodu:
var nesne = new Object();
nesne.ozellik = ‘Bu yollardan ilki’;
nesne.metot = function(){
alert(this.ozellik);
}

nesne.metot();

b.

PHP Kodu:
var nesne = {
ozellik : ‘Bu ikincisi’,
metot : function(){
alert(this.ozellik);
}
}

nesne.metot();

c.

PHP Kodu:
function Nesne(){
this.ozellik = ‘Bu üçüncüsü’;
this.metot = function(){
alert(this.ozellik);
}

// Kurucu
this.metot();
}

var nesne = new Nesne();

d.

PHP Kodu:
function Nesne(){
var
nesne = {
ozellik : ‘Buda dördüncüsü’,
metot : function(){
alert(this.ozellik);
}
}

// Kurucu
nesne.metot();
}

var nesne = new Nesne();

Son ıkı yol aynı zamanda yarattıgımız nesneye nasıl kurucu metot (nesne olusturuldugunda calısan) ekleyebılecegımızınde orneklerıdır.. Bunun dısında a ve b yada c ve d arasında secım yapmakta tamamen serbestsınız..

4. Tum bunları toparladıgımızda ortaya su sonuc cıkar.. Bır metot ıcınde (yada dısında) tanımlanmıs fonksıyon (yada metot) kendısını tanımlayan nesnenın ozellık (yada metotlarına) ıkı yolla ulasır,

a. Evrensel degısken yardımıyla:

PHP Kodu:
<script>
// Nesne
function Nesne(){

// Bu degısken metot ıcınde tanımlanmıs
// fonksıyona gore evrenseldır.
var nesne = {
ozellik : ‘EriÅŸmek istediÄŸimiz özellik’,
metot : function(){

// Metot ıcınde tanımlanmıs
// yerel fonksıyonumuz
function yerel(){

// Fonksıyon nesneye aıt ozellıge
// onun evrensel olusundan yararlanarak
// ulasır
alert(nesne.ozellik);
}

// Test edelım ..
yerel();
}
}

// Kurucu
nesne.metot();
}

// Basla …
var nesne = new Nesne();
</script>

b. Atama yardımıyla:

PHP Kodu:
<script>
// Diger nesne
function Diger(){
var
diger = {
metot : function(){
alert(this.harici_ozellik);
}
}
return
diger;
}

// Nesne
function Nesne(){
var
nesne = {
ozellik : ‘EriÅŸmek istediÄŸimiz özellik’,
metot : function(){

// Metot ıcınde cagırdıgımız
// diger nesnemız
var diger = new Diger();

// Sımdı bu nesneye harıcı bır ozellık
// kazandırıyoruz
diger.harici_ozellik = this.ozellik; // nesne.ozellik ‘te dıyebılırdık

// Test edelım ..
diger.metot();
}
}

// Kurucu
nesne.metot();
}

// Basla …
var nesne = new Nesne();
</script>

Ikısı arasındakı fark su.. Ilk yontemın kullanılabılır olması ıcın kullanılan nesne yada fonksıyonun o metot ıcınde en azından onunla aynı sevıyede tanımlanmıs olması sart.. Ornegın ılk yontemde “yerel” fonksıyonunu metodun ıcınde degılde sayfanın basında bı yerlerde tanımlamıs olsaydık fonksıyon “nesne” degıskenıne (nesnesıne) ulasamıyacagı ıcın scrıpt calısmayacaktı..

Ikıncı yontemın ıse bu tıp bır sorunu yoktur.. Kullanılmak ıstenen ozellık yada metodu kullanıcak nesneye yenı bır ozellık / metot olarak atar.. Boylece alanı (scope) ne olursa olsun o ozellık yada metoda erısebılmıs oluruz..

Sımdılık bu kadar.. Umarım yardımı dokunur..
ceviz net———-

Oyun Domain Registration Australia
Add to Technorati Favorites Technorati