« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга

Тестирование 64-битных приложений

ПнВтСрЧтПтСбВс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
    Популярное
Функция AccessResource

Опыт использования ADO для доступа к базам данных форматов MS Access, xBase и Paradox

Афоризмы программирования

Создаем свой GetRigrht

Функция LoadIcon

Работа с cookies на Perl

Структура Windows-приложения

Тонкая настройка MySQL

Справочник по PHP и Lite

Отсоединенный режим




    Архив файлов



    Сообщества



    Документация

Статьи:: Интернет технологии :: Flash :: Старшинство


отправить ссылку другу версия для печати  Обсудить на форуме

Старшинство





Теперь у нас есть пример, где у всех собак по четыре лапы, а у некоторых ещё и космы (то есть свойство puffyHair). Рухнет ли наша модель, если yeller подскользнётся и поранит одну лапу в результате неаккуратного обращения с пилой. Мы не хотим писать Dog.prototype.legs = 3, потому что это изменение коснётся всех собак (если только мы не пройдёмся той же пилой по остальным... брр!). Возвращаясь к модели со слоями стекла, мы увидим, что лучшее место, где можно зафиксировать такой трагический поворот событий, это первый слой, принадлежащий yeller'у. Всё произойдёт точно так же, как в своё время fido получил модную причёску. Это логично, ведь беда приключилась только с yeller'ом, а не со всеми собаками сразу. Но что случится, если вы измените свойство yeller'а с помощью следующего выражения:

yeller.legs = 3?

Затронет ли такое изменение (значение Dog.prototype.legs меняется на 3) какие-нибудь ещё элементы? К счастью для всего собачьего сообщества, нет. ActionScript не позволит экземпляру случайно изменить свой прототип . Вы защищены от собственной криворукости! Можете снова пользоваться пилой.

Постойте-ка, но ведь у yeller'а теперь два свойства legs - одно в его экземпляре, другое - в прототипе? Давайте сейчас снова вернёмся к модели многослойных стёкол. Действительно, теперь есть бумажка, с надписью legs = 4 на слое прототипа, и ещё одна с надписью legs = 3 на слое экземпляра. Но существует одно правило: если два "кусочка бумаги" имеют одно и то же имя свойства, то они перекрываются, помните? Итак, эти две бумажки как бы "встали на одну прямую", и какую же из них мы видим? Верхнюю, разумеется. Таким образом, получится, yeller.legs == 3. Вот что произойдёт с нашим кодом:

Dog = function( ){}
Dog.prototype.legs = 4;

yeller = new Dog( );
yeller.legs = 3;

Это должно выглядеть логичным даже для тех, кто совсем ничего не понимает: "У собак по четыре лапы, но у yeller'а их три". Именно это и называется старшинством. Если у двух или более свойств обнаружены одинаковые имена, возвращается то из них, которое находится ближе всего к экземпляру. Аллегория со слоями стекла очень показательна. Если один предмет закрывает другой, то вы видите только ближайший к вам. Разумеется, если вы уберёте передний, то снова увидите тот, что был позади него. Но точно ли так обстоит дело с прототипами? Сохранилось ли ещё то первое свойство? Да, сохранилось. Удалите "закрывающее" свойство, и вы снова его увидите. Вот, как это будет выглядеть:

trace( yeller.legs ); // 3 - из экземпляра
delete( yeller.legs );
trace( yeller.legs ); // 4 - из прототипа

Из вышеприведённого примера видно, что личное свойство yeller'а legs просто перекрыло или "старше" (вспомним армию) свойства Dog.prototype.legs. Может читать это так: "Когда-то у yeller'а было три лапы, но теперь, хвала современной медицине!, у него, как и у всех остальных собак их снова четыре". И вновь на глаза наворачиваются слёзы.




Рубрика: Flash




Инструменты Internet Explorer 8 Beta 2 для разработчиков.

Вебмастеру

В марте этого года мы уже писали об инструментах для разработчика в IE8 Beta 1, но IE8 Beta2 позволяет более полно использовать инструменты за счет значительных изменений в имеющихся функциях, а также новых возможностей. В принципе инструменты для разработчика должны обладать следующими свойствами: Быть интегрированными и простыми в использовании; Иметь визуальный интерфейсC их помощью можно быстро протестировать сайт.


Подробнее... | Рубрика: Вебмастеру | Добавлено: 05.09.2008

Google Developer Day 2008 в Москве.

Мероприятия

Дата проведения: 28 октября 2008 г.; Место проведения: Амбер Плаза, Москва, Россия. Конференция для веб-разработчиков и разработчиков мобильных приложений в Москве. Узнайте, как наилучшим образом использовать инструменты разработки и API от Google, чтобы создавать социальные, мобильные и картографические приложения, как использовать AJAX/JavaScript инструменты и библиотеки от Google и многое другое из первых уст.


Подробнее... | Рубрика: Мероприятия | Добавлено: 05.09.2008

ТОП 10 самых раздражающих факторов для программиста.

Разное

Совсем недавно наткнулся в интернете на забавный "хит-парад" наиболее раздражающих вещей для программиста. Поскольку он был на английском — решил перевести текст и несколько адаптировать к нашим реалиям…


Подробнее... | Рубрика: Разное | Добавлено: 03.09.2008

Остальные статьи:

Windows Server 7, 8 и 9
jQuery для JavaScript-программистов
Инновационный веб-броузер Google Chrome стартует уже сегодня
Windows 7: подход к производительности системы
Trac + Subversion @ Ubuntu: Revisited
[g]Vim в режиме Python: Рекомпиляция в Windows
Java + JSON. Пути к дружбе
Драйвер SQL Server 2005 для PHP
Типы данных в MySQL (сжатый справочник для PHP программиста)
PHP класс для работы с Яндекс.XML
Ошибки начинающих PHP разработчиков
Наследование шаблонов в Smarty
Особенности хранения сессий PHP в memcached
Internet Explorer 8 beta 2
9 правил для начинающего Ajax-разработчика
ExtJS 2.2 - полная поддержка Firefox 3, новые виджеты и другие нововведения


Цитата дня (все,добавить):



    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование

Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 84
Пользователей: 0