|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
||||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Т.е. вы не знаете, как работает extends под шестой плеер в AS1? Я жду от вас кода. |
|
|||||
блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
|
Цитата:
Для того, чтобы использовать более точную версию AS1 я писал в Flash MX, возможно в Flash CS ситуация изменилась. Скорей всего __proto__ надо писать как prototype. Цитата:
Цитата:
Цитата:
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Цитата:
Цитата:
Цитата:
Из последнего абзаца основных понятий AS1 — подвид ООП, прототипный. Он использует не все исходные понятия ООП. Т. е., есть собственные прототипы, есть наследование. Остальное реализуется лишь на уровне собственных правил разработчика, которым он следует, язык в этом, увы, участия не принимает. |
|
|||||
блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
|
Цитата:
На этом спор можно закончить. |
|
|||||
Регистрация: Jun 2005
Сообщений: 147
|
По поводу "объекта активации", областей видимости:
var e = 5; function Class2(){ this.e=0; trace(e); //5 //-видит, при создании экземпляра область //видимости не поменялась как пишет __etc trace(this.e); //0 // е в объекте, this - указатель на объект. //можете считать, что с созданием экземпляра, область //видимости "расширилась", вопрос терминологии... } var o2 = new Class2(); Меня сбил с толку код wvxvw: //wvxvw пишет про область видимости function TClass () { //пытается скрестить строку с this - не вышло //+ внутри this указывает на другое function toBePrivate () { trace("Should be TClass: "+ this); }//так нельзя this.toString = function () { return "[TClass]" }; this.callPrivateMethod = function() {toBePrivate()}; } var t = new TClass(); trace(t);//[TClass] t.callPrivateMethod(); //Should be TClass: undefined function TClass () { function toBePrivate () { this.toString = function () { return "[TClass Function]" }; trace(this); //вот так можно, только this, без строк }; this.toString = function () { return "[TClass]" }; this.callPrivateMethod = function() {toBePrivate()}; } var t = new TClass(); trace(t);//[TClass] t.callPrivateMethod();//[TClass Function] Я прокоментирую: function a () { trace (this); } function b(){ trace (this); a();//не знаю... Очевидно что функция a не относится к объекту класса b(), //это только ссылка на внешнюю функцию, которая лежит на //таймлайне (_level0) //Я уже писал, что все что находится вне тела класса - не копируется //при создании экземпляра, а получает ссылку ... } new b(); // создается экземпляр класса b() function b(){ function a(){trace (this); } trace (this);//[object Object] - указатель //на экземпляр класса a(); //[type Object] - указатель на объект функции (b), //я уже писал про это ... } new b(); 2 __etc: Вы показали как работает указатель this в AS1. И что? Не надо их сравнивать (AS1, AS3); o = new Object(); o.toString = function() { return 'object o'; } a = new Object(); a.toString = function() { return 'object a'; } function test() { trace(this); } o.test = test; a.test = test; test(); // _level0 o.test(); // object o a.test(); // object a trace([test==o.test, test==a.test]); // true,true Цитата:
Вы наверно не заметли.., а процитировали только мое одно предложение, я процитирую: Цитата:
__________________
видеоигры - высший вид искусства |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Цитата:
Цитата:
Цитата:
И остаться при своих. Последний раз редактировалось etc; 01.07.2008 в 18:59. |
|
|||||
Регистрация: Jun 2005
Сообщений: 147
|
Цитата:
Можно так: function Class1(){ this.a="for __etc"; var link2this=this; function pMet(){trace(link2this.a);} this.met=function(){pMet();} } var o1=new Class1(); o1.met(); function Class2(){ var a = "for __etc"; //приват свойство function pMet(){ //вуаля trace(this.a);//:) - Вы так рвались к this } pMet();//вызов объектом-функции локальной функции pMet //нужно для открытия области видимости :) } var o2=new Class2();
__________________
видеоигры - высший вид искусства |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Цитата:
Напишите или исправьте вариант так, чтобы работало this.a в приватном методе без использования ссылок типа link2this. Заодно познакомитесь с новым (судя по всему) для вас методами в AS1 (и вы наконец поймете, может быть, о чем я говорил всю дорогу) и мы тихо-мирно закроем вопрос по поводу приватов. |
|
|||||
Banned
[+4 01.02.09]
[+1 01.02.09] |
Цитата:
А так как вы отказываетесь говорить, какие вы видите цели в привате, то глупо утверждать, что ничего подобного нет в AS1. Ага, отлично - википелия Там, кстати AS к ООП относят (явно не 3-й) Ну так ДОЛЖЕН язык ООП иметь зарезервированное слово private? Простой вопрос: да или нет? (то же самое к словам class, interface) Цитата:
function Polymorph(){ } Polymorph.prototype.getAngle=function(angle){ trace(this.getSin(angle)) } function Degree(){ } Degree.prototype.getSin=function(angle){ function convert(){ return angle*Math.PI/180 } return Math.sin(convert()) } function Radian(){ } Radian.prototype.getSin=function(angle){ return Math.sin(angle) } obj=new Polymorph() Polymorph.prototype.__proto__=Degree.prototype obj.getAngle(90) // 1 obj.getAngle(Math.PI/2) // 0.0274121335920443 Polymorph.prototype.__proto__=Radian.prototype obj.getAngle(90) // 0.893996663600558 obj.getAngle(Math.PI/2) // 1 Цитата:
Оригинально, это лишний раз подтверждает то, что вы читаете ровно до того предложения и лепите ответ к одному предложению, не обращая внимания на другие. Ну значит вам не надо А мне надо и интересно. |
|
||||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Цитата:
Я вами треплюсь уже 400 с лишним ответов в этой теме и я после этого отказываюсь? Если бы я отказывался, я бы тут вообще ни поста не оставил. Инкапсуляция, инкапсуляция, инкапсуляция, черт вас возьми, сколько можно? Я понимаю, что мыслить проектами до 2 килострок какой-то там инкапсуляцией и полиморфизм с наследованием сложно, да. Ой, как я вас понимаю. С потолка взяли? Цитата:
Что значит? Наследование как реализовали? Через очень интересное свойство __proto__, очень документированное, руками. Не простым кейвордом extends без плясок, а аж пять строчек. Инкапсуляция как реализована? Последние страниц десять с горем пополам что-то сделали, и то, такой вариант не живет с наследованием, не говоря уже о забиванием памяти одинаковыми методами, которые даже экземпляру класса не принадлежат. Цитата:
С точки зрения ООП как раз таки, а не AS3. AS3 взят в качестве примера, если хотите, можно взять в качестве примера Java или C#, не принципиально. Цитата:
Цитата:
Я вас прошу написать точный аналог моего кода, который описывает все три принципа ООП в двух классах + интерфейс. Интерфейс и полиморфизм, вы, конечно, показать не сможете, ибо ни того, ни другого нет в AS1 и реализовать их собственными силами вам не удастся, покажите хотя бы код, являющийся точной копией моему, но на AS1. Т. е. те же свойства, приватность, методы, переопределение и т. д. Вы меня объявили в некомпетентности, не удосужовшись прочитать дальнейший текст, каким тут боком iNils? Вы не прочитали текст до конца, потом тут же пишете тоже самое и говорите, что я что-то не понимаю? Оригинально. Вот именно, что вам интересно. Вам нравится реализовывать ООП на коленке, это уже и так понятно. |
Часовой пояс GMT +4, время: 16:38. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|