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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.06.2008, 01:31
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 1  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
ад кромешный. от терминогогии "локальная фцнкция" или "приватный метод" суть не меняется. наружу видно только то, что ты хочешь дать. при чом тут ASSetPropFlags??? при чем тут метаязыки?
от того что кто-то в своё время недоучил ас1 он хуже не становится... всё то же и про ас3...
__________________
Breakcore them all!

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

Регистрация: Jun 2005
Сообщений: 147
Цитата:
var c = new Class1();
c.pMetA = function(){trace("doing some funn stuff here")};
c.pMetA();
Вы не создали метод у класса, а создали у объекта. При чем тут этот бред?
Цитата:
Я с таким же успехом могу и в прототипе его удалить переназначить, и ничто мне не помешает использовать все тот же ASSetPropFlags для этого =)
Использование ASSetPropFlags? - на здаровье. Только зачем ломать атрибуты некой библиотеки. Скажем некого фреймворка? Вы станите переписывать библиотеку на АС3 меняя set на get и пр. издевательства?
И здесь тоже самое.


Последний раз редактировалось riden; 30.06.2008 в 06:04.
Старый 30.06.2008, 01:47
riden вне форума Посмотреть профиль Отправить личное сообщение для riden Найти все сообщения от riden
  № 3  
Ответить с цитированием
riden
 
Аватар для riden

Регистрация: Jun 2005
Сообщений: 147
2 KidsKilla:
Цитата:
при чом тут ASSetPropFlags???
Да не причем... Я как то не прасек, что wvxvw не в тему тупо создал новый метод в объекте с названием приватного.
Но если бы он так сделал с паблик методом... То есть реально бы совершил переопределение ( а он это и хотел показать) - тогда, можно посоветовать только ASSetPropFlags.
__________________
видеоигры - высший вид искусства

Старый 30.06.2008, 01:54
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 4  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
Цитата:
Сообщение от riden Посмотреть сообщение
2 KidsKilla:

Да не причем... Я как то не прасек, что wvxvw не в тему тупо создал новый метод в объекте с названием приватного.
Но если бы он так сделал с паблик методом... То есть реально бы совершил переопределение ( а он это и хотел показать) - тогда, можно посоветовать только ASSetPropFlags.
да я не к тебе, а в воздух -- кто его затронул и зачем, не понятно...

wvxvw, "Я вам пытаюсь доказать, что приватных свойств в АС1 не существует." попробуйте доказать что земля квадратная. тоже нормальное занятие...
__________________
Breakcore them all!

Старый 30.06.2008, 02:14
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 5  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
Сообщение от KidsKilla Посмотреть сообщение
wvxvw, "Я вам пытаюсь доказать, что приватных свойств в АС1 не существует." попробуйте доказать что земля квадратная. тоже нормальное занятие...
Это один из вариантов увиливания от ответа, т.н. демагогия. Мы не говорили про форму земли, ну ни разу до этого. Я никогда, даже в самом страшном сне не пытался утверждать, что земля квадратная, но, тем не менее, вы приписываете мне это высказывание =) Тем самым пытаясь подвергнуть сомнению другое утверждение никак не связанное с приписаным мне ложным =) Попросту - замыливаете глаза, пытаясь увести дискуссию от темы и выставить опонента дураком =)
__________________
Hell is the possibility of sanity

Старый 30.06.2008, 14:09
Ромастый вне форума Посмотреть профиль Отправить личное сообщение для Ромастый Найти все сообщения от Ромастый
  № 6  
Ответить с цитированием
Ромастый
 
Аватар для Ромастый

Регистрация: Jan 2004
Адрес: На чердаке.
Сообщений: 1,112
Внесу и я свои 5 копеек по поводу пабликов/приватов
Создание локальных функций и ссылок на них внутри конструктора класса никак не может быть созданием методов. В первую очередь, как было справедливо замечено, из-за области видимости.
Как я догадываюсь, смутить умы может некоторая похожесть организации кода AS1:
Код:
function AS1Class() {
	function myMethod() {
               //....
	}
}
с AS2:
Код:
class AS2Class {
	function myMethod() {
		//...
	}
}
и AS3:
Код:
package {
	public class AS3Class {
		function myMethod() {
			//...
		}
	}
}
Вот только function AS1Class() {..} является не телом класса, а конструктором. Создавать в конструкторе методы - где вы такое видели?
В AS1 методы создавались через prototype:
Код:
function AS1Class(a) {
       //...
}

AS1Class.prototype.myMethod = function(a) {
	//....
}

AS1Class.prototype.myOtherMethod = function(b) {
	this.myMethod(b+1);	
}
И вот такие методы нормально сделать приватными мне не представляется реальным.
__________________
...Тебе страшно? Мне - нет.

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

Регистрация: Jun 2005
Сообщений: 147
Цитата:
Я вам пытаюсь доказать, что приватных свойств в АС1 не существует. Вы уверенно уходите от признания этого факта =)
2 wvxvw:
Цитата:
Сообщение от riden
#316 - чем метод pMetA() не приватный?
Получите доступ к pMetA не из тела родного класса, а потом утверждайте подобную чушь
Кстати то, а вы сами понимаете смысл атрибута private в AS3?
ОФФТОП/: у меня сто сообшений, с 50 с чем-то нафлудил за день практически/ОФФТОП
__________________
видеоигры - высший вид искусства


Последний раз редактировалось riden; 30.06.2008 в 01:54.
Старый 30.06.2008, 03:03
badun вне форума Посмотреть профиль Отправить личное сообщение для badun Найти все сообщения от badun
  № 8  
Ответить с цитированием
badun

Регистрация: Dec 2007
Сообщений: 269
[увлеченно жует попкорн] ))
wvxvw, я за тебя! но не забывай про первое правило спора )).

Старый 30.06.2008, 04:04
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 9  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
wvxvw, я имел в виду то, что в ас1 есть приватные свойства. их назвали "локальными функциями". а вы пытаетесь доказать обратное. чтож, успехов.
от того что кто-то не признаёт очевидных вещей суть не меняется.
__________________
Breakcore them all!

Старый 30.06.2008, 05:06
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ок, давайте уточним, изначально речь шла про приватные методы - в процессе кто-то оговорился и теперь мы еще и свойства обсуждаем, предлагаю вернуться к изначальной теме =)
Для тех, кто пропустил начало дискуссии:
Мои тезисы такие:

Метод
  • Функцию можно назвать методом, если область ее видимости совпадает с областью видимости объекта, чьим методом она является.
  • Функция не является методом если она не доступна любому другому методу объекта, чьим методом она является.
  • Функцию можно назвать методом только по отношению к объекту создавшему ее.
Приватный метод
  • Приватным является такой метод, который можно вызвать из любого другого метода объекта, чьим методом он является, но ниоткуда более.
  • Обязательным атрибутом приватного метода является невозможность его переопределения / удаления из-за пределов объекта, чьим методом он является.

По моему глубокому убеждению функция созданная в конструкторе класса не удовлетворяет ни одному из вышеперечисленных условий.
Т.как ее область видимости разнится с областью видимости класса, чьим методом она должна быть. Методы объявленные позже на прототипе класса не имеют доступа к этой функции. Функцию объявленную таким образом можно вызвать с разными областями видимости используя call и apply.

Я не исключаю возможности, когда выполнение такой функции будет неотличимо от выполнения метода класса, но настаиваю на том, что эти понятия не взаимозаменимы.

Поскольку функция не является методом, то проверку на приватность считаю лишней.

В заключение: мне кажется семантически более верным называть такую функцию "локальной функцией" либо "служебной функцией" класса для отличия от метода, который исходя из семантики слова предполагает принадлежность чему либо.
__________________
Hell is the possibility of sanity

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

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

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


 


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


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