![]() |
А есть ли в конечном результате разница между прототипом и объектом? Или это что-то вроде: «ООП лучше» вечная тема.
Вопрос серьёзный... я не программист. п.с. «страшнее того» мой код так плох? |
Он не правильный.
|
Попробуйте вот так:
Код:
MovieClip.prototype.contentloader = function(){ |
Раз уж возник вопрос… Очень часто спрашивают меня.
Тут подумал как лучше объяснить прототипы :) Забудьте про классы и т.п., т.к. в AVM1 ничего этого нет на самом деле :) Есть только объекты и функции (особые объекты). 1) У любой функции есть свойство (объект) под названием prototype. 2) У любого объекта есть свойство-указатель на объект prototype той функции при помощи которой он был построен (конструктор класса). Это свойство указатель называется __proto__ А также свойство-указатель на саму функцию (конструктор класса) под названием constructor. Соответственно, можно сказать, что у объектов (исключая функции) не бывает свойство prototype, но у функции есть свойства __proto__, т.к. функция - это тоже объект. Когда мы смотрим какое-то свойство у объекта, сначала проверяется объект, если оно там не найдено, то по ссылке __proto__ проверяется объект prototype функции-конструктора, далее по ссылке __proto__ в самом прототипе смотриться следующий прототип и т.д. до конца цепочки наследования (до Object.prototype) Код:
createEmptyMovieClip("mc",1) // создаем для примера мувик под именем mc |
А никто не спорит что на АС1 можно было писать по правилам ООП, другой вопрос является ли он ООП языком или нет.
Если настаиваете на своём коде то так правильнее: Код:
MovieClip.prototype.contentloader = function(){ |
2screamge, вообще-то AS это именно язык на основе прототипов... а язык на основе прототипов, это стиль ООП программирования...
|
Если речь идёт об АС1 то:
Цитата:
|
Не знаю, что там адобовцы намудрили с AVM2 (мало информации), но вот AVM1 работает исключительно на прототипах, т.е. AS1 и AS2 - прототипные.
А так-как прототипы поддерживаются и в AS3, то есть у меня большие подозрения, что и AVM2 на самом деле прототипная. Да, можно подойти к вопросу строго формально и тогда, синтаксически, AS2 и AS3 не будут прототипными. Но мне кажется это ремесленеческий подход. |
Спасибо за интересные ответы.
А если вернуться к этому вопросу: Цитата:
И все же, есть ли разница в АС2 (именно в нем) между тем или иным способом. П.С. Я пишу на php,но всегда писал процедурно. |
Цитата:
Прототип - это объект в таком специфическом объекте, как функция. Т.е. это не ссылка на функцию. ссылка на функцию - это ссылка в объекте под именем constructor Код:
function Class(){Цитата:
Далеко не для всех это ясно. |
| Часовой пояс GMT +4, время: 13:22. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.