- •1.1. Объект және объектінің бір данасы (экземпляры)
- •1.2. Объект интерфейсі және объектінің ішкі құрылымы
- •1.3. Құрамдас ішкі объектілер және тұтынушы объектісі
- •2. Date объектісі
- •4. Объектіге бағытталған программалау
- •5. Мұралау
- •6. Статикалық және динамикалық мұралау
- •7. Array объектісінің sort тәсілі
- •6. Length тәсілі қасиеттері – массив ұзындығы (оның элементтері саны). Мысалы:
5. Мұралау
Тіктөртбұрыш негізінде жаңа объект Kvadrat. Для жасайық. Тіктөртбұрыштың балық қасиеттері мен тәсілдері мұра ретінде квадратқа өтеді, айырмасы болуы үшін түс элементін қосайық:
//Описание конструктора(а - сторона, с - цвет)
function Kvadrat(а,с)
{
this.parent = Rectangle;
//Родительский объект.
this.parent(a,a);
//Вызвали его конструктор.
this.color = с;
// Определили қасиет "цвет"
}
Енді былай жазуға болады:
var kv = new
Kvadrat(100,"красный"); //Квадрат
var s = kv.square();//Нашли его площадь
var p = kv.perimeter();//Нашли периметр
alert("Этот квадрат " + kv.color + "\nЕго площадь=" + s + "\nА периметр =" + p + "\nСторона квадрата=" + kv.width);
Осы сипатталған механизм ООП ортасында мұралау (наследование) деп аталады.
6. Статикалық және динамикалық мұралау
М
ынадай
объект
жасайық:
//-- Объект Num --
function Num(a)
{ this.number = a; this.mul2 = _mul2; }
function _mul2()
{ return this.number * 2; }
//-- Конец документации на объект Num. --
Объект санды сақтап, оны 2-ге көбейте алады.
Енді былай жазамыз:
var x = new Num(10);
var у = x.mul2();
alert("Проверка объекта
Num: 10*2="+y);
Енді
Num объектісі үшін мұрагер жасаймыз:
// Объект Numa (наследован от Num)
function Numa(a)
{ this.parent = Num; // родителем объявлен Num
this.parent(a); // вызван конструктор родителя
this.put = _put;// объявлен новый тәсіл у потомка }
function _put()
{ alert("Исходное число=" + this.number);}
// Конец документации на объект Numа.
Мұрагерді тексеру үшін былай жазамыз:
// Проверка Num
var z = new Numa(100);
z
.put();
Экранда мынадай жазу пайда болады:
«Исходное число=100»
Num объектісіне жаңа тәсіл қосып былай жазамыз:
Num.prototype.mul3 = _mul3;
function _mul3()
{ return this.number*3;}
Тексереміз:
var t = new Num(10);
alert("Для родителя: 10*3=" +t.mul3());
Мұрагердің өз тегінің жаңа тәсілін қалай түсінетінін тексерейік, ол үшін былай жазайық: var k = new Numa(10);
alert(k.mul3());
Браузер қате жайлы хабарлама береді.
Мұндай мұралау статикалық деп аталады. Мұрагер жасалу кезінде оның ішкі құрамына тегінің барлық қасиеттері мен тәсілдері көшіріледі де, содан кейін туыстық байланыс жойылады. Егер оның ата тегі жаңа тәсілге ие болатын болса, оның мұрагері ол туралы ешнәрсе білмейді.
Мұрагер жасау кезінде оның ата тегімен байланысын үзбеуге болады. Ол динамикалық мұралау арқылы іске асырылады. Егер объект мұралау тәсілімен жасалса, онда ата тегінің құжаты (документациясы) көшірілмейді, тек оған сілтеме жасалады. Егер ата тегінде бір өзгеріс болса, онда ол барлық «динамикалық» түрде құрылған мұрагерлерге ол қатысты болып саналады.
Динамикалық мұралауы бар объектіге мысал:
//Объект Numa (динамически наследован от Num)
function Numa(a)
{ this.parent = Num;
// родителем объявлен Num
this.parent(a);
// вызван конструктор родителя
this.put = _put;
// объявлен новый тәсіл у потомка
}
Numa.prototype = new Num;
//Задана динамическая связь с родителем
function _put()
{
alert("Исходное число="+this.number);
}
//-- Конец документации на объект Numа.--
Динамикалық мұралауы бар объект мысалдары нәтижелері:
