![]() |
Цитата:
Цитата:
|
Цитата:
Код:
function a () {_level0 undefined Ну вот откуда тут _level0? |
Цитата:
Цитата:
Цитата:
Цитата:
Код:
function IMyClass(){Как я уже говорил АС1 и JavaScript являются прототипными ООП. Что свойственно для языков программирования без жесткой типизации, в которых нельзя ввести определение класса. Если ,etcs, хочет называть все прототипные языки программирования "неистенными" это его право, но только вместе с приставкой ООП. |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
p.S. В моем нике всего три буквы и два подчеркивания, но почему в нём постоянно делают ошибки? То буквы местами перепутают, то «c» с «s», то одно подчеркивания вместо двух (хотя подчеркивания можно и опустить совсем). |
Яски, есть ООП, а есть возможности языка :) с вашей логикой Вы мне можите доказывать, что Джава не язык программирования вовсе, так как там нету класса MovieClip :) что за бред Вы несёте про this, про inline-методы, перегрузка операторов? какое отношение к ООП они имеют? миксинг классов вообще фактически с точки зрения ООП, противопоказан.
|
Цитата:
Если уж на то пошло, то и as1 класс создается НА ЭТАПЕ ИСПОЛНЕНИЯ кода в кадре, так что нет существенной разницы - добавили вы метод в конструкторе (так уж и быть, "теле" класса), или через prototype. Куда важнее, что а) - сохраняется область видимости; б) - все методы и свойства, добавленные в прототип, распространяются на ВСЕ экземпляры класса, а не создаются каждый заново при создании экземпляра. По мне, это куда ближе к концепции ООП. А создавать локальную функцию (по большому счету - независимый объект), делегировать ему функционал основного класса с помощью ссылки или apply/call - куда больший изврат. P.S. Задержался с ответом, но все же. |
Цитата:
Понятное дело, что проще инкапсулировать методы в собственной голове и закрыть глаза на то, что приваты торчат наружу. |
Цитата:
Ведь как только такой ответ будет дан, сразу будет видно, что чему отвечает и соответствует. Цитата:
argumetns.caller - указатель на объект функции, но не на объект активации. Это разные вещи. this - тоже не указатель на объект активации. Это свойство объекта активации, показывающее, чьим методом является функция. Код:
function A(){ |
Цитата:
Цитата:
Посему, this в моем коде был изменен на более полезную и логичную область видимости экземпляра класса (ссылка на экземпляр). Это несколько лучше костыля с внешней ссылкой, но других способов сделать функцию приватной в AS1 лично я больше не вижу. И вообще, товарищ Гурский под объектом активации подразумевает как раз этот самый полуобъект-ссылку на локалку родительской функции, а вот большинство программистов, не знакомых с творчеством Гурского, под объектом активации понимают arguments.caller, т. е. метод/функция, вызвавший (активировавший) данный. |
Цитата:
Цитата:
Цитата:
iNils привел код, где трассируется указатель this. А this указывает на объект активации только в том случае, если функция вложена (тогда this из вложенной функции указывает на объект активации функции-оболочки) Цитата:
PS Кстати не __constructor__ а просто constructor |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Я жду от вас кода. |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
Из последнего абзаца основных понятий AS1 — подвид ООП, прототипный. Он использует не все исходные понятия ООП. Т. е., есть собственные прототипы, есть наследование. Остальное реализуется лишь на уровне собственных правил разработчика, которым он следует, язык в этом, увы, участия не принимает. |
Цитата:
Цитата:
|
По поводу "объекта активации", областей видимости:
Код:
var e = 5;Меня сбил с толку код wvxvw: Код:
//wvxvw пишет про область видимостиКод:
function TClass () {Я прокоментирую: Код:
function a () {Код:
function b(){2 __etc: Вы показали как работает указатель this в AS1. И что? Не надо их сравнивать (AS1, AS3); Код:
o = new Object();Цитата:
Вы наверно не заметли.., а процитировали только мое одно предложение, я процитирую: Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Можно так: Код:
function Class1(){Код:
function Class2(){ |
Цитата:
Код:
function Class1() { |
Цитата:
А так как вы отказываетесь говорить, какие вы видите цели в привате, то глупо утверждать, что ничего подобного нет в AS1. Цитата:
Ну так ДОЛЖЕН язык ООП иметь зарезервированное слово private? Простой вопрос: да или нет? (то же самое к словам class, interface) Цитата:
Цитата:
Код:
function Polymorph(){Цитата:
Оригинально, это лишний раз подтверждает то, что вы читаете ровно до того предложения и лепите ответ к одному предложению, не обращая внимания на другие. Цитата:
А мне надо и интересно. |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Я вас прошу написать точный аналог моего кода, который описывает все три принципа ООП в двух классах + интерфейс. Интерфейс и полиморфизм, вы, конечно, показать не сможете, ибо ни того, ни другого нет в AS1 и реализовать их собственными силами вам не удастся, покажите хотя бы код, являющийся точной копией моему, но на AS1. Т. е. те же свойства, приватность, методы, переопределение и т. д. Цитата:
Цитата:
|
Если чесно, я уже потерял всякую надежду на то, что здравый смысл когда-нибудь возьмет верх =) Знаете, доказать, что Деда Мороза нету, технически не возможно, и тем не менее... Так же и с вами, на любой разумный аргумент отыскивается все больше и больше далеко идущих в своей абсурдности контраргументов. =) Но все равно, сколько бы вы ни старались, убедить в том, что междугородние поездки на самокате ни в чем не успупают электричкам у вас не получится =) И тем не менее, вы все равно будете называть самокат ультимативным средством междугороднего сообщения =)
И возвращаясь к истокам темы :D то, что вы теперь хотите от Adobe - это приделать к самокату реактивный двигатель, а то что-то он стал от электрички отставать, и вообще, семь потов сойдет, пока на другой конец города доедешь, какое там - даже на дачу съездить никаких сил нет! |
Цитата:
Код:
function a () {Цитата:
|
Цитата:
Копии своего кода я все-равно не получу, а убеждать индейца в том, что базука круче его тамагавка мне уже, честно говоря, осточертело. |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
А то что поначалу __proto__ был "очень документирован" - так это вина адоба, а не AS1, не так ли? Цитата:
Цитата:
Цитата:
Цитата:
Мой код показывает основные три принципа ООП в самом примитивном виде, не более. Просто пример. Цитата:
Цитата:
Цитата:
От адоба бы хотелось как минимум раскрыть все возможности самоката (сознательно им прикрытые). Как максимум - сделать такую электричку, чтобы на ней ездили как левши, так и правши (как раньше на самокате). AS1 вполне такое позволяет. |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Вложений: 1
вот, немножко позитива на ночь глядя =) Сто лет уже инструменты в руки не брал =)
ЗЫ. *Коренные жители америки с распростертыми объятиями приняли новые технологии* |
wvxvw, класс! :)
|
wvxvw, +1... надо было вывешивать постов этак 200 назад ;)
класс! |
iNils, riden, если хотите разобраться с объектами активации посмотрите посты 408 и 410.
Код:
function a () {Цитата:
Тоже самое с принципом инкапсуляции. С точки зрения парадигмы ООП инкапсуляция достигается без всяких приватов. Примите это как факт. А вот с точки зрения любителей мертвых языков или других сторонников ООП на классах, это понятие (инкапсуляции) может быть более конкретизирована и ограничено. Но к общей парадигме ООП это уже никак не относится. Цитата:
Цитата:
Цитата:
Цитата:
Интерфейсы - это всего лишь ОДИН ИЗ СПОСОБОВ ДОСТИЖЕНИЯ полиморфизма. Да я взял один и тот же класс, но лишь для подчеркивания возможностей AS1. Метод getAngle полиморфен и в этом случае. Цитата:
Цитата:
|
Цитата:
А картинка знатная, да. |
Цитата:
Цитата:
Код:
cx = 1;Код:
1.Дополнение, наткнулся на пост в блоге Нокса. Там он цитирует спецификацию ECMA-262 Цитата:
|
Цитата:
Т.е. если ты хочешь протестить свой код, то найди 6-й флеш-редактор (тот что MX) и протести там. Цитата:
add: Код:
function b () {Код:
[type Object]А этот объект активации (функции "b", а не "с"!) содержит в себе указатель this, куда? Правильно, на рут - тот объект, чьим методом является функция "b". |
Цитата:
Цитата:
|
Цитата:
Цитата:
Теперь продолжим с "доказывающим примером" :) Код:
function b () {Код:
[type Object]А вот почему у функции-оболочки указатель this пустой - это надо спросить у тех, кто знает как устроены сетинтервалы и сеттаймауты. |
Цитата:
Цитата:
Цитата:
|
Цитата:
Т.е. твои доводы, что вложенная функция своим this не указывает на объект активации ВНЕШНЕЙ функции-оболочки, оказались ошибочными. Цитата:
Какое мне дело до спецификации, когда я только что при тебе сделал указатель на объект активации (z) и он действует уже ПОСЛЕ выполнения функции? В любое время к нему можно обратиться. |
OOP AS1 В ДЕЙСТВИИ 3 in 1: инкапсуляция, наследование, полиморфизм
OOP AS1 В ДЕЙСТВИИ 3 in 1: инкапсуляция, наследование, полиморфизм
Следует заметить что НАСЛЕДОВАНИЕ в AS1 - более широкое понятие. Здесь - наследование на уровне экземпляр-класс, наследование свойств прототипов класса, надкласса, наследование свойств созданных внутри конструктора и пр... В этом плане AS1 более гибок... такое наследование позволяет экономить память, ресурсы компьютора. Я покажу наследование - в "классическом" понимании, то есть как в AS3, Java, C#. Код: *IA - in action, в действии Код:
//Класс Rectangle - надкласс класса Square |
Цитата:
Код:
function b () {Код:
E |
Цитата:
|
riden, я просил точную копию своих классов. Мне не нужны другие примеры, я привел пример и прошу реализовать его же, на AS1. Без какого-либо вмешательства в схему.
|
| Часовой пояс GMT +4, время: 10:43. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.