Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Секреты javascript ниндзя

Секреты javascript ниндзя

Published by mr.oleg-nk, 2015-09-19 16:04:08

Description: Секреты javascript ниндзя

Search

Read the Text Version

Глма 6. 06'6еКmн�тированное программирование с помощъю прототипов 1 59var ninj a = new Ninj a ( ) ;Ninj a . prototype . swingSword return this . swung;};assert ( ninj a . swingSword ( ) , J flроьtр•мь, кмкоii ·� МtМО�ОЬ О�Ч'\"'\"\"' М17\" \" Ca l l ed the inst ance rnethod, not t he prot ot ype method . \" ) ;</script> В данном примере снова вводится метод экземпляра О с тем же именем, что и упрототипного метода 8 , как это уже делалось в коде примера из листинга 6.2. В томпримере метод экземпляра получил приоритет над прототипным методом . Но теперьпрототипный метод вводится после выполнения конструктора. Какой же из методоводержит верх на этот раз? Как показывает тестирование е , даже если прототипный метод вводится поем ме­тода экземпляра, старшинство имеет метод экземпляра. И в этом есть свой смысл. Ведьобращение к прототипу происходит только в том случае, если ссылка на свойство всамом объекте не достигает цели. А поскольку свойство swi ngSword непосредственнопринадлежит объекту, то прототипный вариант не вступает в действие, даже если оноказался самым последним вариантом созданного метода. Дело в том , что ссылки на свойства разрешаются сншtала в объекте , и по умолча­нию обращение к прототипу осуществляется лишь в том случае, если эти ссылки недостигают цели. Итак, выяснив, каким образом экземпляры объектов получаются черезфункции-конструкторы , перейдем к более подробному рассмотрению характера самихобъектов.Типизация объектов через конструкторы Безусловно, знать, каким образом прототип исполь.зуется в JavaScript при увязыва­нии ссылок на свойства, очень важно. Но не менее полезно знать, какая именно функ­ция построила экземпляр объекта. Как было показано ранее, конструктор объекта до­ступен через свойство con s t ru c t o r . Сделать обратную ссылку на конструктор можнов любой момент, исполь.зуя его даже в форме контроля типов, как показано в примерекода из листинга 6.5.Листинг 6 . 5. Анализ типа экземпляра объекта и его конструктора< s c r ipt t ype = \" t ext / j avascript \" >function Ninj a ( ) { }var ninj a = new Ninj a ( ) ; _; flpo&tp•мь м•h ninj a , \"\"мАь�ча ohtfAмopa s sert ( t ypeof n i n j a == \" obj ect \" , t yp e o f . 3мо м�ьоА•• А•�мь ьы1...•мь1 чмо n i n j a - '\"'о &км , но нt �oAtt ...01.4 \"The type of the instance is obj ect . \" ) ; flpoьtf\"\"'ь \"'\"h n i n j a , •<1\ОАЬ!>ЧАJassert ( ninj a inst anceof N i n j a , ohtpAмop i n s tanc eof . 3мо ...- hо�ьолwм ммкхt Ч!>мА�.ь, •мо \" i nst anceof ident ifies the cons t ructor . \" } ; &км h�мроtн конtм17'1•мором \"'\"hA N i n j a
















































































Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook