Цитата:
Цитата:
|
Цитата:
Код:
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 |
Часовой пояс GMT +4, время: 05:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.