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əyir.
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 operatorudur.
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ısaltmağ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.