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

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

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

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от 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 (и вы наконец поймете, может быть, о чем я говорил всю дорогу) и мы тихо-мирно закроем вопрос по поводу приватов.

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

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

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


 


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


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