www.fanxezer.tk-ya xoş gəlmisiniz! Çərşənbə, 2024-04-24, 5:16 AM
AzNetin ən yaxşı əyləncə saytı
       
Menyu

Bolmə
Saytımız [7]
Proqramlar [16]
Din [23]
Xakerlər üçün [4]
Musiqi [11]
Şəkillər [15]
Video [13]
İdman [10]
Məntiq [5]
Veb Usta [5]
Tanınmışlar [7]
Mobil dünya [14]
Bayramlar və tarixi günlər [28]
Azərbaycan [14]
Yumor [6]
Heyvanlar [6]
Kulinariya [5]
Oyunlar [7]
Lətifə və aforizmlər [7]
Şeir dünyası [4]
Hekayələr [7]
Maraqlı [30]
Skriptlər [3]
Xəbərlər [21]
Teleseriallar [4]
Digər [11]
Texnologiya [6]
Komputer bilgiləri [35]

Mini çat


Sorğu
Saytımızın dizaynı xoşunuza gəlirmi?
Cəmi səs sayı: 526

 
Statistika

Hal-hazırda saytda: 1
Qonaqlar: 1
İstifadəçilər: 0

  


Əsas » Fayllar » Skriptlər

JavaScript
[ ] 2009-06-18, 5:18 PM
JavaScript-də Obyekt Yönlü Proqramlaşdırma

Obyekt Anlayışı
Obyekt mürəkkəb verilən tipidir. Obyektin tərkibinə dəyişə çoxluğu – xassə və bu dəyişənlər üzərində manipulyasiya etmək üçün funksiya çoxluğu – metod daxildir. Xassə verilən saxlayır, metod isə onları emal edir. Bu şəkildə obyektə proqramın digər fraqmentlərindən asılı olmayaraq ayrıca baxmaq olar.
Obyektə nümunə kimi HTML-dokumentə baxaq. O xassələr çoxluğuna malikdir: internet-adres, ölçü, simvol kodlaşdırılması və s. Bəzi xassələrini dəyişə bilərsiniz, digərlərini isə yox. O həmçinin motodlar çoxluğuna da malikdir: Web browser pəncərəsində göstərmək, disk üzərində saxlamaq, çap etmək və s. Belə bir analogiya vermək də olar: xassə - obyektin atributu, metod – idarəetmə vasitəsi.
Obyekt digər verilənlərin tiplərindən əlavə olaraq bir də onunla fərqlənir ki, onun istifadəsi üçün uyğun obyekt sinifinin nüsxəsini yaratmaq lazımdır. Bu zaman sinif dəyişən tiplərinə oxşar olaraq obyekt tipinin nümunəsidir, nüsxə isə onunla işləyə biləcəyiniz konkret obyektdir. Nüsxə obyekt new operatoru vasitəsilə yaradılır. Bu zaman obyektə istinad dəyişənə mənimsədilir. İstinad (və ya göstərici) yaddaşda bir yerə nişanlanır, hansı ki, yaradılan nüsxə obyekt saxlanılır. Dəyişəndə saxlanılan bu göstərici ilə obyektə müraciət edə bilərik.

var obj;
obj = new SomeObject();

Burada obj – dəyişəndir, hansı ki yaradılmış obyekə istinad edən göstərici mənimsədilib, SomeObject isə - obyekti yaradan sinifdir.
Obyekti isifadə edib qurtardıqdan sonra onu silmək olar. Bunun üçün delete operatorundan istifadə edilir.
delete obj;

Qeyd: delete operatoru yalnız Internet Explorer və Navigator 4.0 versiyalarından başlayaraq dəstəklənir. Internet Explorer və Navigator 3.0 versiyalarında dəyişənə null qiymətini mənimsədərək obyekti silə bilərsiniz. Navigatorun çox köhnə versiyaları obyekti silməyi ümumiyyətlə dəstəkləmir.

Yaxşı, biz obyekt yaratdıq və onun xassə və metodlarına müraciət etmək istəyirik. Bunu necə etməliyik? Çox sadə! Aşağıdakı çağırma formatından istifadə edərək xassələrə müraciət edə bilərsiniz:

{Obyektə istinad edən dəyişənin adı}.{Xassənin adı}

Bu şəkildə xassəyə müraciət etmək dəyişənə müraciət etmək kimidir, fərq yalnız ondan ibarətdir ki, burada dəyişənin – xassənin əvvəlinə obyekiti göstərən dəyişənin adını və nöqtə işarəsini qoymaq lazımdır.

obj.SomeProperty = 9;
encoding = HTMLDocument.CodePage;

Metod da oxşar şəkildə çağrılır:
{Obyektə istinad edən dəyişənin adı}.{Metodun adı}([{Parametrlər}])

Yəni demək olar ki, adi funksiya kimi çağrılır, istisna olaraq obyektin adını (obyektin adı – onyektə istinad edən dəyişənin adı mənasındadır) yazmaq lazımdır.

void HTMLDocument.SaveToDisk(‘somefile.htm’);

Obyekt massivin elementinə mənimsədilə və funksiyaya göndərilə bilər. Bu zaman funksiyanın gövdəsində onun xassələrini dəyişməyə və metodunu çağırmağa icazə verilir.
Obyekt həmçinin obyekt tipində xassəyə malik ola bilər, yəni xassə daxili obyekt adlandırılan obyektə göstərici saxlaya bilər. Analoji qaydada daxili obyektin xassə və metodlarına müraciətə icazə verilir:

encoding = someObject.internalObject1.property1;
v = someObject.internalObject1.method1;

Koddan göründüyü kimi əvvəlcə obyektin adı, sonra daxili obyektin adı, daha sonra isə daxili obyektin xassəsinin və ya metodunun adı göstərilib.
Yeri gəlmişkən obyektin özü bu şəkildə yaradılır:

obj = new SomeObject();

O funksiya çağırılmışına çox oxşayır, elə deyil mi? Bu da öz növbəsində funksiyadır, konstruktor adlanan obyektin xüsusi metodudur. Bu metod digərlərindən onunla fərqlənir ki, bu metod obyekt yaradılarkən çağırılır və onun xassələrinin ilkin qiymətlərini verir. Konstruktorun adı həmişə sinfin (class) adı ilə eyni olur.
Konstruktor parametr ala bilər.

obj2 = new SomeObject2(param1, param2, x + y, 3);

Konstruktorsuz yaradılan obyektlər də mövcuddur. Onlar inisiallaşdırıcı vasitəsilə yaradılır:

obj3 = new SomeObject3(prop1: param1, prop2: param2, prop3: x + y, prop4: 3);

Yəni bu cür obyekt yaradarkən, biz onun xassələrini qiymətlərlə doldururuq.

Qeyd: İnisiallaşdırıcı Internet Explorer və Navigator browserlərində 3.0 versiyalarından başlayaraq dəstəklənir. Navigatorun (JavaScript-i Internet Explorer 3.0 versiyasından başlayaraq dəstəkləyir) daha əvvəlki versiyalarında siz obyekti yalnız konstruktor vasitəsilə yarada bilərsiniz.

JavaScript-də olan bütün mümkün obyektlər daxili və istifadəçi yaradan olmaqla iki qrupa bölünür. Daxili siniflərə misal olaraq Array, Boolean, Date, Function, Math və s. kimi misal göstərmək olar. Daxili siniflər burada araşdırılmayacaq.
typeof operatoru obyekt dəyişəni üçün “object” sətirini qaytarır.

Bir neçə yeni operator
Obyektlərlə işləyərkən tətbiq olunan bir neçə yeni operatora baxmaq zamanı gəldi.
in operatoru verilmiş obyektdə verilmiş xassənin olub olmadığını yoxlayır və true və ya false qiymətini qaytarır.
{xassənin adı} in {obyektin adı}
Burada xassənin adı sətir şəklində verilir, obyektin adı isə obyekt tipli dəyişən kimi verilir.
Bu operatoru məsələn aşağıdakı kimi istifadə etmək olar:

if (“SomeProperty” in obj) ...

Qeyd: in operatorunu yalnız Internet Explorer dəstəklənir.

instanceof operatoru verilmiş obyektin verilmiş sinifin nüsxəsi olub olmadığını yoxlayır, true və ya false qiymətini qaytarır.

{obyekt} instanceof {sinif}

Burada obyekt obyekt tipli dəyişən şəklində verilir, sinif isə sinifin adı şəklində verilir.

if (obj instanceof SomeObject) …

Qeyd: instanceof operatoru Internet Explorer-in 5.5-ci versiyasından başlayaraq dəstəklənir.

for-in operatoru obyektin bütün xassələrinə və ya massivin bütün elementlərinə baxmağa və hər biri üçün əməliyyat aparmağa imkan verir. Bu operator xüsusiləşdirilmiş dövr operatrudur.

for({sayğac} in {obyekt və ya massiv})
... dövrün gövdəsi

sayğac-ı obyektin xassəsinə və ya massivin elementinə müraciət etmək üçün istifadə etmək olar.

for(k in obj)
{
s += k + ‘ ’;
st += obj[k] + ‘ ’;
}
Bu proqram fraqmenti obj obyektinin bütün xassələrinə baxır və xassələrin adlarını boşluq işarəsi ilə ayıraraq s dəyişəninə yazır, st dəyişəninə isə xassələrin qiymətlərinin yenə də boşluq işarəsi ayıraraq saxlayır.
Qeyd: for-in operatoru Internet Explorer-in 5.5-ci versiyasından başlayaraq dəstəklənir.

with operatoru, əgər proqramda hər hansı obyektin (qeyd: bir obyektin) xassə və metodları istifadə olunursa, JavaScript ifadələrinin uzunluğunu xeyli qısaldmağa imkan verir. Misala baxaq.

someobject.property1 = 1;
someobject.property2 = 2;
someobject.property3 = 3;
someobject.method1;
Bu bizim with operatoru istifadə olunmayan proqram fraqmentimizdir. Baxın ifadələr necə uzun sətirdir. İndi isə with operatorunu istifadə edək...

with(someobject)
{
property1;
property2;
property3;
method1;
}
Bu proqram fraqmenti isə olduqca qısadır.

İstifadəçi Sinifi: Yaradılma
Bəzən JavaScript-in tərkibində olan Class-ların (siniflərin) imkanları məsələlərin həlli üçün kifayət etmir. Bu zaman istifadəçi öz class-larının yaradır.
İstifadəçi class-ını yaratmaq üçün nə etmək lazımdır? O qədər çox nə isə tələb olunmur. Əgər class konstruktora malik deyilsə, onda onun nüsxəsini sadəcə inisiallaşdırıcı istifadə etməklə new operatoru ilə yaratmaq lazımdır.

var somePoint;
somePoint = new SomePoint(x: 100, y: 50, color: “black”);
Hamısı bu qədər. Bu şəkildə biz bir qrafiki nöqtəni göstərən, koordinat və rəng xassələri olan obyekt yaratdıq. Artıq indi biz onu istifadə edə bilərik.

somePoint.y = somePoint.x / 2 + 20;
Hətta yaradılmış bu obyektə xassə əlavə etmək mümkündür.

somePoint.radius = 0.5;
Lakin biz öz sinifimizi yaratmadıq. Öz sinifimizi həqiqətən yaratmaq üçün konstruktor təyin etmək lazımdır.
Əvvəlcədən bildiyimiz kimi konstruktor sinif üçün xassə təyin edir və onlara susmaya görə (default) qiymət verir. (Susmaya görə qiymət proqram kodunda sərt olaraq təyin oluna bilər və ya konstruktora parametr kimi verilə bilər.) Həmçinin konstruktor sinfə metod təyin edir (əlavə edir).
Gəlin qrafiki nöqtə sinfini yaradaq. Bunun üçün aşağıdakı konstruktoru yazaq.

function Point(x, y, color)
{
this.x = x;
this.y = y;
this.color = color;
}
Biz cari obyektə istinad etmək (müraciət etmək) üçün yeni this operatorundan etdik. Bu operatoru yaddan çıxarmayın – o bizə çox lazım olacaq.
İndi biz Point sinfindən obyekt yarada bilərik.

var somePoint;
somePoint = new Point(100, 50, “black”);
Gəlin yenicə yaradılmış Point sinfinə metod əlavə edək. Yadda saxlayın ki, dəyişən funksiyaya göstərici saxlaya bilər. Bu dəyişən sinfin xassəsi də ola bilər.
Əvvəlcə funksiya təyin edək. Bu metod koordinatların müəyyən aralıqda olub olmadığını yoxlayır və buna uyğun olaraq true və ya false cavabını qaytarır.

function isPointInBounds()
{
if(this.x>0 && this.x0 && this.y0 && this.x0 && this.y0 && this.x0 && this.y<300);
}
else
{
return false;
}
}
// End Declaration SuperPuperPoint class

Bölmə: Skriptlər | Müəllif: Eli
Baxış sayı: 796 | Yükləmələr: 0 | Şərhlər: 3 | Reytinq: 5.0/2 |
Cəmi şərhlər: 3
2009-06-18
Ismarıc #3 yusif FanXezer (FanXezer)

Sağ oleee çox məlumat vermisən həm də çox maraqlı Təşəkkürlər Əli!

Cavab:

2009-06-18
Ismarıc #2 OrxaN MaRaZ_Ali (MaRaZ_Ali)

Çox sağ ol yaxşıdır müəllifə təşəkkür!

Cavab:

2009-06-18
Ismarıc #1 Elsen Elsen (Superman)

Superrr!!!Əladır.Təşəkkürlər!

Cavab:


ss=commTable border=0 cellSpacing=1 cellPadding=2 width="100%">
Adınız *:
Email:
Təhlükəsizlik kodu *:
Giriş

Axtar

Arxiv


Müalicə pulunuz bir stəkan süd ilə ödənilmişdir

17 Noyabr-Dirçəliş günü

Içki və içki içənlər barədə ayə və hədislər!

Lətifələr

Süleyman peyğəmbər və qarışqa hekayəsi

Ağ çörəyin təhlükəsi

Eyfel qülləsi haqqında

Tək Səbir - Toy Klipi


Dost saytlar
  • Xəzər-Lənkəranan fanat saytı
  • Internetin ən gizli saytı
  • İslam, Haqq Din

  • Namaz vaxtları


    Reklam


    Məlumatlar
    IP adresiniz -18.220.154.41

    Nikiniz - Qonaq

    Statusunuz: Guests

    Ad gununuz -

    Bu gun ad gunu olanlar:

    Qeydiyyat tarixiniz:

    Sizin brauzeriniz:  

    Admin: FanXezer

    Hava haqqında

    Copyright Hazırladı:FanXezer © 2024
    Free web hostinguCoz -->