![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
||||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Т.е. вы не знаете, как работает extends под шестой плеер в AS1? Я жду от вас кода. |
|
|||||
|
блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
|
Цитата:
Для того, чтобы использовать более точную версию AS1 я писал в Flash MX, возможно в Flash CS ситуация изменилась. Скорей всего __proto__ надо писать как prototype. Цитата:
Цитата:
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
Цитата:
Цитата:
Из последнего абзаца основных понятий 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,787
|
Цитата:
Цитата:
Цитата:
И остаться при своих. Последний раз редактировалось 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,787
|
Цитата:
Напишите или исправьте вариант так, чтобы работало 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,787
|
Цитата:
Я вами треплюсь уже 400 с лишним ответов в этой теме и я после этого отказываюсь? Если бы я отказывался, я бы тут вообще ни поста не оставил. Инкапсуляция, инкапсуляция, инкапсуляция, черт вас возьми, сколько можно? Я понимаю, что мыслить проектами до 2 килострок какой-то там инкапсуляцией и полиморфизм с наследованием сложно, да. Ой, как я вас понимаю. С потолка взяли? Цитата:
Что значит? Наследование как реализовали? Через очень интересное свойство __proto__, очень документированное, руками. Не простым кейвордом extends без плясок, а аж пять строчек. Инкапсуляция как реализована? Последние страниц десять с горем пополам что-то сделали, и то, такой вариант не живет с наследованием, не говоря уже о забиванием памяти одинаковыми методами, которые даже экземпляру класса не принадлежат. Цитата:
С точки зрения ООП как раз таки, а не AS3. AS3 взят в качестве примера, если хотите, можно взять в качестве примера Java или C#, не принципиально. Цитата:
Цитата:
Я вас прошу написать точный аналог моего кода, который описывает все три принципа ООП в двух классах + интерфейс. Интерфейс и полиморфизм, вы, конечно, показать не сможете, ибо ни того, ни другого нет в AS1 и реализовать их собственными силами вам не удастся, покажите хотя бы код, являющийся точной копией моему, но на AS1. Т. е. те же свойства, приватность, методы, переопределение и т. д. Вы меня объявили в некомпетентности, не удосужовшись прочитать дальнейший текст, каким тут боком iNils? Вы не прочитали текст до конца, потом тут же пишете тоже самое и говорите, что я что-то не понимаю? Оригинально. Вот именно, что вам интересно. Вам нравится реализовывать ООП на коленке, это уже и так понятно. |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:00. |
|
|
« Предыдущая тема | Следующая тема » |
|
|