Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.07.2008, 17:42
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 411  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Вы не ответили на вопрос. Инкапсуляция не имеет ничего общего с private. Приват может усилить инкапсуляцию, но не более.
Приват и создан для инкапсуляции. Конечно, вы можете создать для себя правила, какие методы вызывать, какие нельзя и типа у вас инкапсуляция получилась. Отлично.

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Ибо нигде не сказано, что ООП язык ДОЛЖЕН иметь такие слова. Зато инкапсуляция, наследование и полиморфизм легко достижимы на AS1, пусть даже без специально зарезервированных слов. У прототипных языков есть свои преимущества и надо их использовать, а не ворчать по поводу отсутствия интерфейсов.
Да откройте википедию хотя бы, насчет должен. Я ничего не говорю про преимущества прототипных языков, я даже не говорю, что AS1 вообще не ООП, он ООП, но с приставкой «псевдо» только лишь из-за того, что это самое ООП надо самому необходимо реализовывать (это доказывает наличие «легко достижимы» вместо «уже есть» из вашего текста). А я не считаю такой язык по-настоящему объектно-ориентированным, в котором надо эту ориентированность самому реализовывать. С тем же успехом ассемблер тоже объектно-ориентированный, ведь в нем тоже можно реализовать полиморфизм, наследование и инкапсуляцию, не так ли?

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Зато инкапсуляция, наследование и полиморфизм легко достижимы на AS1, пусть даже без специально зарезервированных слов.
Подтвердите свои слова кодом, я привел пример инкапсуляции, наследования и полиморфизма на AS3. Перепишите пример под AS1, с сохранением инкапсуляции (нормальной приватности, без торчащих наружу методов), наследования и полиморфизма. У Яски код нерабочий.

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Ничего подобного. Вы невнимательно прочитали мой предыдущий пост и все еще не в введении, что такое объект активации.
iNils привел код, где трассируется указатель this. А this указывает на объект активации только в том случае, если функция вложена (тогда this из вложенной функции указывает на объект активации функции-оболочки)
А вы дальше моего предложения «iNils привел код, в котором нет объекта активации и код, в котором он является рутом.» вообще ничего читать не стали и сразу объявили меня в некомпетентности? Оригинально, это лишний раз подтверждает то, что вы читаете ровно до того предложения и лепите ответ к одному предложению, не обращая внимания на другие.

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Тогда жаль, что "большинство программистов" не хотят знать как на самом деле работает код.
И не должны знать, прочитайте цитату из книги моего поста #398. Программист не должен знать низкоуровневые особенности кода, ему нужно работать и писать работающий, а не сидеть и выпиливать ООП, на котором дай бог что-нибудь заработает.

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
PS Кстати не __constructor__ а просто constructor
Т.е. вы не знаете, как работает extends под шестой плеер в AS1?

Я жду от вас кода.

Старый 01.07.2008, 17:57
Яски вне форума Посмотреть профиль Отправить личное сообщение для Яски Найти все сообщения от Яски
  № 412  
Ответить с цитированием
Яски

блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
Цитата:
Сообщение от __etc Посмотреть сообщение
Ещё раз говорю, что язык вам позволяет реализовывать ООП, куцое, правда. Но у него нет средств для обеспечения той же приватности или полиморфизма, эти вещи разработчик просто в голове держит и все.
А какие средства вам еще нужны, то что можно создавать объекты, назначать им свойства и методы уже является дополнительной возможностью. Например, в том же Си такой возможности нет.

Цитата:
Сообщение от __etc Посмотреть сообщение
Не работает, вы не находите?
Для того, чтобы использовать более точную версию AS1 я писал в Flash MX, возможно в Flash CS ситуация изменилась. Скорей всего __proto__ надо писать как prototype.

Цитата:
Сообщение от __etc Посмотреть сообщение
Если рассматривать понятие ООП как более абстрактное, программирование с использованием понятия объектов, то тогда большинство языков объектно-ориентированные.
ООП является стандартом дефакто, совсем без него плохо.

Цитата:
Сообщение от __etc Посмотреть сообщение
Я уже говорил, что я согласен на формулировку, что AS1 — ООП язык, но только с приставкой «псевдо». Class-based языки — ООП языки без приставок.
Хорошо, называйте его "псевдо", но "прототипный" будет точнее.

Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
Яски, есть ООП, а есть возможности языка с вашей логикой Вы мне можите доказывать, что Джава не язык программирования вовсе, так как там нету класса MovieClip что за бред Вы несёте про this, про inline-методы, перегрузка операторов? какое отношение к ООП они имеют? миксинг классов вообще фактически с точки зрения ООП, противопоказан.
Я тоже считаю, что бредово приписывать к ООП такие частные понятия, как интерфейсы, классы, приватные методы.

Старый 01.07.2008, 18:10
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 413  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от Яски Посмотреть сообщение
А какие средства вам еще нужны, то что можно создавать объекты, назначать им свойства и методы уже является дополнительной возможностью.
Вы выходите в более высокий уровень абстракции, чем я, вам достаточно просто наличия объектов. Мне — нет.

Цитата:
Сообщение от Яски Посмотреть сообщение
Для того, чтобы использовать более точную версию AS1 я писал в Flash MX, возможно в Flash CS ситуация изменилась. Скорей всего __proto__ надо писать как prototype.
Нет, там побольше будет строчек, целых три.

Цитата:
Сообщение от Яски Посмотреть сообщение
Я тоже считаю, что бредово приписывать к ООП такие частные понятия, как интерфейсы, классы, приватные методы.
Wiki
Из последнего абзаца основных понятий AS1 — подвид ООП, прототипный. Он использует не все исходные понятия ООП. Т. е., есть собственные прототипы, есть наследование. Остальное реализуется лишь на уровне собственных правил разработчика, которым он следует, язык в этом, увы, участия не принимает.

Старый 01.07.2008, 18:31
Яски вне форума Посмотреть профиль Отправить личное сообщение для Яски Найти все сообщения от Яски
  № 414  
Ответить с цитированием
Яски

блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
Цитата:
Сообщение от __etc Посмотреть сообщение
Вы выходите в более высокий уровень абстракции, чем я, вам достаточно просто наличия объектов. Мне — нет.
Главное решить поставленную задачу, а инструмент для этого подойдет любой.

Цитата:
Сообщение от __etc Посмотреть сообщение
Я ничего не говорю про преимущества прототипных языков, я даже не говорю, что AS1 вообще не ООП, он ООП
На этом спор можно закончить.

Старый 01.07.2008, 18:35
riden вне форума Посмотреть профиль Отправить личное сообщение для riden Найти все сообщения от riden
  № 415  
Ответить с цитированием
riden
 
Аватар для riden

Регистрация: Jun 2005
Сообщений: 147
По поводу "объекта активации", областей видимости:
Код:
var e = 5;
function Class2(){
	this.e=0;
	trace(e); //5  //-видит, при создании экземпляра область 
//видимости не поменялась как пишет __etc
	trace(this.e); //0 // е в объекте, this - указатель на объект.
//можете считать, что с созданием экземпляра, область
//видимости "расширилась", вопрос терминологии...
	
}
var o2 = new Class2();
Тоже происходит и с локальными функциями. Все они видят, и указатель this - здесь не причем.
Меня сбил с толку код 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]
2 iNils:По этому, речь идет только о глобальных функциях (this==undefined), а в методах - все OK.
Я прокоментирую:
Код:
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
Цитата:
Сообщение от =__etc
В AS3 поведение иное, область видимости не изменяется, даже если присвоить ссылку на метод класса другому объекту. А в AS1/AS2 функция будет вызвана в области видимости того объекта, к которому она присвоена
Где у вас здесь методы класса? если бы test() - был методом класса, он бы и работал, как "спрогаммирован". То есть instanceOfClass.test() - будет возвращать, то что нужно. И не важно кому его присвоят, откуда он ссылку получит.

Вы наверно не заметли.., а процитировали только мое одно предложение, я процитирую:
Цитата:
Сообщение от riden
Это значит, что все переменные (свойства) во внешней функции (классе) видны. Все свойства внутри тела класса (функции) копируются, с созданием экземпляра. И можно также (как и в AS3, например this[область видимости экземпляра]-parent) через ссылку на this-класса, получить доступ к руту экземпляра.
Аналогом parent DisplayObject в AS1 будет _parent мувика. Короче классы в ас1 работают также как в ас3 в этом смысле. И также можно узнать где лежит клип: this-класса._parent, и таким образом получить доступ к области видимости экземпляра. Надеюсь я правильно понял смысл фразы "область видимости экземпляра класса". А как в АС3 вы получите из тела класса, доступ к области видимости экземпляра, если он - не часть DisplayList (короче не DisplayObject)? Ну не важно, аналогию я привел.
__________________
видеоигры - высший вид искусства

Старый 01.07.2008, 18:48
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 416  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от riden Посмотреть сообщение
Надеюсь я правильно понял смысл фразы "область видимости экземпляра класса".
Нет, неправильно поняли.

Цитата:
Сообщение от riden Посмотреть сообщение
А как в АС3 вы получите из тела класса, доступ к области видимости экземпляра, если он - не часть DisplayList (короче не DisplayObject)? Ну не важно, аналогию я привел.
Очень просто — this. Я и так в каждом методе в AS3 нахожусь в этой области видимости и this ссылается на неё же. Я уже говорил вам, что «должна работать так» — это значит, что нужно сделать так, чтобы приваты работали, как они работают в AS3. Я приводил соответствующий код.

Цитата:
Сообщение от Яски Посмотреть сообщение
Главное решить поставленную задачу, а инструмент для этого подойдет любой.
Ну конечно, у нас есть детальки, мы сначала сделаем бензопилу, а потом будем ей рубить лес. Лично я предпочту язык с наличием бензопилы изначально.

Цитата:
Сообщение от Яски Посмотреть сообщение
На этом спор можно закончить.
И остаться при своих.


Последний раз редактировалось etc; 01.07.2008 в 18:59.
Старый 01.07.2008, 19:07
riden вне форума Посмотреть профиль Отправить личное сообщение для riden Найти все сообщения от riden
  № 417  
Ответить с цитированием
riden
 
Аватар для riden

Регистрация: Jun 2005
Сообщений: 147
Цитата:
Сообщение от __etc
Очень просто — this. Я и так в каждом методе в AS3 нахожусь в этой области видимости и this ссылается на неё же.
Именно про это я и писал, уже давно: "доступ к переменным(свойствам) внешней функции-класса)".
Можно так:
Код:
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();
Вы конешно напишите, что это не правильно... Но суть в реализации инкапсуляции, и она есть. Все остальное что вы скажите, я и так знаю (и сам это знаю) - #333
__________________
видеоигры - высший вид искусства

Старый 01.07.2008, 19:20
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 418  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от riden Посмотреть сообщение
Именно про это я и писал, уже давно: "доступ к переменным(свойствам) внешней функции-класса)".
Можно так:
Код:
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();
Вы конешно напишите, что это не правильно... Но суть в реализации инкапсуляции, и она есть. Все остальное что вы скажите, я и так знаю (и сам это знаю) - #333
Боже мой, опять чертов костыль-ссылка. Давайте задам вопрос прямо: вы знаете, что такое call и apply? Не нужны мне приватные свойства, я их и без this получу, он мне не нужен для этого. Мне нужны публичные свойства экземпляра класса получить из this, без ссылки типа link2this. Вот код:

Код:
function Class1() {
	this.a = 10; // _публичное_ свойство
	
	function privateMethod() {
		trace(this.a); // хочу, чтобы вывело 10
	}
	
	this.publicMethod = function() {
		privateMethod();
	}
}
o = new Class1();
o.publicMethod();
Напишите или исправьте вариант так, чтобы работало this.a в приватном методе без использования ссылок типа link2this. Заодно познакомитесь с новым (судя по всему) для вас методами в AS1 (и вы наконец поймете, может быть, о чем я говорил всю дорогу) и мы тихо-мирно закроем вопрос по поводу приватов.

Старый 01.07.2008, 22:50
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 419  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Цитата:
Сообщение от __etc Посмотреть сообщение
Приват и создан для инкапсуляции. Конечно, вы можете создать для себя правила, какие методы вызывать, какие нельзя и типа у вас инкапсуляция получилась. Отлично.
Инкапсуляция - это всего лишь механизм образования "черного ящика". Да, приват создан для усиления инкапсуляции, но сам по себе инкапсуляцию не обеспечивает.
А так как вы отказываетесь говорить, какие вы видите цели в привате, то глупо утверждать, что ничего подобного нет в AS1.

Цитата:
Сообщение от __etc Посмотреть сообщение
Да откройте википедию хотя бы, насчет должен.
Ага, отлично - википелия Там, кстати AS к ООП относят (явно не 3-й)
Ну так ДОЛЖЕН язык ООП иметь зарезервированное слово private? Простой вопрос: да или нет? (то же самое к словам class, interface)

Цитата:
Сообщение от __etc Посмотреть сообщение
...я даже не говорю, что AS1 вообще не ООП, он ООП, но с приставкой «псевдо» только лишь из-за того, что это самое ООП надо самому необходимо реализовывать... А я не считаю такой язык по-настоящему объектно-ориентированным, в котором надо эту ориентированность самому реализовывать.
Что значит САМОМУ? Есть синтаксические конструкции языка или нет, которые позволяют это делать? Есть. Правда почему-то их обозвали "хаками", "костылями" и т.п. Но это только с точки зрения ООП на классах. А как можно судить об AS1 как языке ООП с точки зрения AS3? Не хотите тогда посмотреть на AS3 с точки зрения AS1 и обозвать хаками interface? Нет? Правильно. Потомучто нужно смотреть с точки зрения общей парадигмы ООП.

Цитата:
Сообщение от __etc Посмотреть сообщение
Подтвердите свои слова кодом
Код:
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
Хотите - перепишите на AS3

Цитата:
Сообщение от __etc Посмотреть сообщение
А вы дальше моего предложения «iNils привел код, в котором нет объекта активации и код, в котором он является рутом.» вообще ничего читать не стали и сразу объявили меня в некомпетентности?
А где вы ДАЛЬШЕ сказали, что iNils ошибся? Надо думать забыли?


Оригинально, это лишний раз подтверждает то, что вы читаете ровно до того предложения и лепите ответ к одному предложению, не обращая внимания на другие.

Цитата:
Сообщение от __etc Посмотреть сообщение
Программист не должен знать низкоуровневые особенности кода
Ну значит вам не надо
А мне надо и интересно.

Старый 01.07.2008, 23:46
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 420  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Инкапсуляция - это всего лишь механизм образования "черного ящика". Да, приват создан для усиления инкапсуляции, но сам по себе инкапсуляцию не обеспечивает.
А что обеспечивает инкапсуляцию, хотелось бы услышать.

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
А так как вы отказываетесь говорить
Я вами треплюсь уже 400 с лишним ответов в этой теме и я после этого отказываюсь? Если бы я отказывался, я бы тут вообще ни поста не оставил.

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
какие вы видите цели в привате
Инкапсуляция, инкапсуляция, инкапсуляция, черт вас возьми, сколько можно? Я понимаю, что мыслить проектами до 2 килострок какой-то там инкапсуляцией и полиморфизм с наследованием сложно, да. Ой, как я вас понимаю.

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
(явно не 3-й)
С потолка взяли?

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Ну так ДОЛЖЕН язык ООП иметь зарезервированное слово private? Простой вопрос: да или нет? (то же самое к словам class, interface)
Да хоть назовите «коробочка», смысл от этого не меняется, не обеспечивает AS1 инкапсуляции, вам её самому надо реализовывать, с кучей недостатков. Вы придираетесь к самому наличию/отсутствию кейворда «private», а не к сути такого понятия, как приватность. Не реализована эта инкапсуляция на уровне языка в AS1, никаким образом, ни кейвордом, никак, вы это сами подтвердили высказыванием о том, что её можно легко реализовать. То, что у меня есть четыре колеса, вовсе не означает, что их можно назвать автомобилем. Вы из подручных средств пытаетесь собрать этот самый автомобиль, чтобы попытаться на нем поехать и при этом, всю эту кучу хлама, из которого собираетесь сделать автомобиль (не зная вообще, поедет ли он), уже называете это автомобилем.



Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Что значит САМОМУ?
Что значит? Наследование как реализовали? Через очень интересное свойство __proto__, очень документированное, руками. Не простым кейвордом extends без плясок, а аж пять строчек. Инкапсуляция как реализована? Последние страниц десять с горем пополам что-то сделали, и то, такой вариант не живет с наследованием, не говоря уже о забиванием памяти одинаковыми методами, которые даже экземпляру класса не принадлежат.

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Есть синтаксические конструкции языка или нет, которые позволяют это делать? Есть.
Какие? extends — нету. private — нету. Интерфейсы? А что это такое? Ничего этого нет, вы для себя это придумываете, в мозгу, мол, вот такие методы вызывать нельзя, а эти переменны трогать тоже. Язык вам тут не поможет, он не умеет сам по себе такие вещи делать.

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
А как можно судить об AS1 как языке ООП с точки зрения AS3?
Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Потомучто нужно смотреть с точки зрения общей парадигмы ООП.
С точки зрения ООП как раз таки, а не AS3. AS3 взят в качестве примера, если хотите, можно взять в качестве примера Java или C#, не принципиально.

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Не хотите тогда посмотреть на AS3 с точки зрения AS1 и обозвать хаками interface?
В AS1 нет полиморфизма, он просто настолько далек от этого, что просто не знает в принципе, что это такое.

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Код:
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
И где здесь мой вариант на AS3, переписанный под AS1? Где публичное свойство angle у экземпляра класса? Где работа приватного метода с ним? Где наследование свойства? Не вижу. Я вижу две функции, одна вызывает другую и молча возвращает посчитанное значение на основе аргумента. Никакой работы с экземпляром класса, гениально просто.
Я вас прошу написать точный аналог моего кода, который описывает все три принципа ООП в двух классах + интерфейс. Интерфейс и полиморфизм, вы, конечно, показать не сможете, ибо ни того, ни другого нет в AS1 и реализовать их собственными силами вам не удастся, покажите хотя бы код, являющийся точной копией моему, но на AS1. Т. е. те же свойства, приватность, методы, переопределение и т. д.

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
А где вы ДАЛЬШЕ сказали, что iNils ошибся? Надо думать забыли?
Вы меня объявили в некомпетентности, не удосужовшись прочитать дальнейший текст, каким тут боком iNils? Вы не прочитали текст до конца, потом тут же пишете тоже самое и говорите, что я что-то не понимаю? Оригинально.

Цитата:
Сообщение от chingachgoog Посмотреть сообщение
Ну значит вам не надо
А мне надо и интересно.
Вот именно, что вам интересно. Вам нравится реализовывать ООП на коленке, это уже и так понятно.

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:38.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.