Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   Битва гигантов: AVM1 vs. AVM2. Спешите видеть! Только у нас! (http://www.flasher.ru/forum/showthread.php?t=113128)

etc 29.06.2008 20:57

Цитата:

Сообщение от riden (Сообщение 748686)
// использует паблик свойство по ссылке
}

Вы уверены? ;)
Дождусь ли я когда-нибудь кода, в котором приводится не простой трейс, а изменение значения публичной переменной?

riden 29.06.2008 21:00

Используйте prototype. Вы не программировали на AS1?

etc 29.06.2008 21:03

Цитата:

Сообщение от riden (Сообщение 748689)
Используйте prototype. Вы не программировали на AS1?

Я в свое время написал килотонны AS1, разговор не об этом. Я-то знаю, что хочу и как оно должно выглядеть, но я хочу получить это от вас, в виде рабочего кода, а не подобные ответы.

wvxvw 29.06.2008 21:04

Убедится в обратном очень легко =)
Код:

function Class1(){
        var pat;
        this.at = 34;
        pat = this.at;
        //приватный "метод" <- ремарка моя
        function pMetA(){
                trace(pat); // использует паблик свойство по ссылке
        }
        this.callPrivateMethod = function() {
                pMetA();
        }
}
var c = new Class1();
c.callPrivateMethod(); // output: 34
c.at = 0;
c.callPrivateMethod(); // output: 34

значение публичного свойства поменялось, а приватный "якобы метод" это не заметил =)

etc 29.06.2008 21:06

Цитата:

Сообщение от wvxvw (Сообщение 748692)
Убедится в обратном очень легко =)

Ты все испортил! :(

Хотя нет, ещё не все, пока не будет кода.

riden 29.06.2008 21:11

2 etc
Код:

function Class1(){
var pat;
this.at=34;
pat = this.at;
//приватный метод
function pMetA(){
trace(pat); // использует паблик свойство по ссылке
}
function pMetB(){
pmet2; //использует паблик метод объявленный "после", требование 2 исчерпано
}
//паблик методы
//метод изменяет свойство класса
function pmet1(){
pMetA();
Class1.prototype.propFor__etc = "not more __etc";
}
function pmet2(){
trace("do pmet2");
}

this.met1=pmet1;//паблик метод, свойство по значению
this.met2=pmet2; //паблик метод объявленный после
Class1.prototype.met3 = pmet1; // требование 1 исчерпано
Class1.prototype.propFor__etc="for_etc"; //создаем паблик свойство
}

////////////////////////////////////////
var obj = new Class1();
obj.met2();//do pmet2
obj.met3(); //34
trace(obj.propFor__etc);//for_etc
obj.met1();
trace(obj.propFor__etc);//not more __etc

Цитата:

в свое время написал килотонны AS1, разговор не об этом. Я-то знаю, что хочу и как оно должно выглядеть, но я хочу получить это от вас, в виде рабочего кода, а не подобные ответы.
Тогда в чем дело? Зачем меня то напрягать?

etc 29.06.2008 21:18

Цитата:

Сообщение от riden (Сообщение 748695)
Тогда в чем дело? Зачем меня то напрягать?

Ну вы же заявили о приватных свойствах и методах, вот я и пытаюсь получить от вас их получить в виде кода.
А код, что вы привели, дважды вывел у меня "no more __etc" (странно, с чего бы это?). А ещё, что будет, если экземпляров этого класса аж две шутки будет? Вы вместо исправления проблемы, породили с помощью prototype ещё целую кучу.

riden 29.06.2008 21:19

Цитата:

Сообщение от wvxvw (Сообщение 748692)
Убедится в обратном очень легко =)
Код:

function Class1(){
        var pat;
        this.at = 34;
        pat = this.at;
        //приватный "метод" <- ремарка моя
        function pMetA(){
                trace(pat); // использует паблик свойство по ссылке
        }
        this.callPrivateMethod = function() {
                pMetA();
        }
}
var c = new Class1();
c.callPrivateMethod(); // output: 34
c.at = 0;
c.callPrivateMethod(); // output: 34

значение публичного свойства поменялось, а приватный "якобы метод" это не заметил =)

Я опроверг два твоих "требования". А здесь я так и пишу, что pat - ссылка. Тяжело тект воспринимать, да?

etc 29.06.2008 21:21

Цитата:

Сообщение от riden (Сообщение 748699)
Я опроверг два твоих "требования". А здесь я так и пишу, что pat - ссылка. Тяжело тект воспринимать, да?

А давайте на личности не будем переходить?
Был бы ваш pat ссылкой, второй вызов метода вывел бы верное значение, т. е. 0.

riden 29.06.2008 21:21

2 etc потому что там куча лишнего кода, уберите лишний трейс. Метод met1 вызывается два раза. Этот код на все случаи жизни, на требования которыми в меня напрягли сегодня.
Цитата:

Был бы ваш pat ссылкой, второй вызов метода вывел бы верное значение.
Ну я сказал, что надо использовать прототип.


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

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