![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Zeroglif |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
В принципе, согласен с тем, что ты подразумеваешь. Что переменная (один идентификатор), что и имя функции (второй идентификатор) - оба превратятся в имена свойств некого объекта. Нет жёсткой привязки к функции. В этом принципиальном смысле их судьба похожа. Но это всё равно не отменяет факт существования особенностей конкретно именованных функций, главная из которых - позиция функции в коде плюс наличие имени разделяют декларацию от выражения. Или вот, вспомнилось, что у gecko можно имена функций высматривать без сорцов:
Ну как же, переменные, объявленные функции и формальные параметры становятся свойствами Variable Object, мы же не явно заводим эти свойства (методы). Добавлено @ 21:24
Ну да. |
||||
|
|||||
| Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
На встречу, а на сколько удобно/функционально эта фича для тебя? Не хотел бы иметь просто FunctionExpression везде, при этом если функция имеет имя, то она автоматом видна по имени выше/ниже в коде (создаётся вторая переменная). А если имени нет, то соответственно функция доступна только по переменной, которой присвоили значение функции. Чем была вызвана необходимость этой ремарки в ECMA?
Только у global так, у остальных объявленные функции/переменные не становятся свойствами объекта (т.е. доступные через this). Или говорим о разных вещах? Покажи кодом. P.S. поднапрягусь, перепишу текст чуть позже. Но вот топ "Методы" в Wiki меня смущает, интересно что подразумевал автор туда положить... -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
| Zeroglif |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
Мне пофиг, я идентификаторами мыслю. FunctionExpression везде наверное было бы проще, без имён ещё проще. Кто ж знает. Изначально была классическая функция с именем и запретом вложений. Потом понеслось. Они становятся свойствами/методами Variable Object (это чётко прописанный алгоритм), без этого просто невозможно будет побегать по scope chain в поисках некого идентификатора, опрашиваются ведь именно свойства. Что касается this value, то при вызове определяется, кто "владелец" метода, если это Activation Object (Variable Object в контексте функций), то этот объект не передаётся в this, вместо него туда уходит null, вот цитата: "If Result(6) is an activation object, Result(7) is null". Что касается "покажи кодом", то в отношении Activation Object это невозможно, т.к., повторяю, в this пойдёт null, но могу предложить код, где нет глобального контекста, но есть логичное this value (gecko only):
|
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |