Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.03.2014, 16:59
ryh ryh вне форума
Новичок на форуме
Отправить личное сообщение для ryh Посмотреть профиль Найти все сообщения от ryh
 
Регистрация: 05.03.2014
Сообщений: 4

Почему не удаляется функция созданная как объект?
Пример кода

var f = new Function (alert('hello'));
f=null;
f();


продолжает работать.

Почему?
Ответить с цитированием
  #2 (permalink)  
Старый 05.03.2014, 17:12
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

ошибку же пишет error: 'f' is not a function
а какой реакции вы ожидали?
Ответить с цитированием
  #3 (permalink)  
Старый 05.03.2014, 17:15
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

var f = new Function (alert('hello'));
f=null;
alert(f);


var f = new Function (alert('hello'));


Просто кто-то не знает как использовать конструктор new Function()
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 05.03.2014 в 17:20.
Ответить с цитированием
  #4 (permalink)  
Старый 05.03.2014, 17:17
ryh ryh вне форума
Новичок на форуме
Отправить личное сообщение для ryh Посмотреть профиль Найти все сообщения от ryh
 
Регистрация: 05.03.2014
Сообщений: 4

Сообщение от animhotep Посмотреть сообщение
ошибку же пишет error: 'f' is not a function
а какой реакции вы ожидали?
дык пишет hello, вот в чем дело.

так, понял, это alert а не ф-я. Но тогда вопрос почему такое только через объектный синтаксис происходит.

Цитата:
Просто кто-то не знает как использовать конструктор new Function()
все, вроде понял. спасибо.

Последний раз редактировалось ryh, 05.03.2014 в 17:28.
Ответить с цитированием
  #5 (permalink)  
Старый 05.03.2014, 17:26
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от ryh
почему такое
Что "такое"?

var f = (alert('hello'));
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #6 (permalink)  
Старый 05.03.2014, 17:31
ryh ryh вне форума
Новичок на форуме
Отправить личное сообщение для ryh Посмотреть профиль Найти все сообщения от ryh
 
Регистрация: 05.03.2014
Сообщений: 4

Сообщение от nerv_ Посмотреть сообщение
Что "такое"?

var f = (alert('hello'));
Т.е. короче говоря, при синтаксисе new Fubction, alert('hello') берется из контекста window а не из LexicalEnvironment и потому не сгорает при уничтожении функции?
Ответить с цитированием
  #7 (permalink)  
Старый 05.03.2014, 17:34
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Не буду ничего объяснить, для тех кто не может прочитать по ссылке
Могу только сказать, что ты ерунду пишешь:
Сообщение от ryh
Т.е. короче говоря, при синтаксисе new Fubction, alert('hello') берется из контекста window а не из LexicalEnvironment и потому не сгорает при уничтожении функции?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #8 (permalink)  
Старый 05.03.2014, 18:07
ryh ryh вне форума
Новичок на форуме
Отправить личное сообщение для ryh Посмотреть профиль Найти все сообщения от ryh
 
Регистрация: 05.03.2014
Сообщений: 4

Сообщение от nerv_ Посмотреть сообщение
Не буду ничего объяснить, для тех кто не может прочитать по ссылке
И где ты видишь тут противоречие? В том что по ссылке написано лишь что для new Function. [[scope]] всегда берется из window.
Я и говорю что след-но alert в данном случае принадлежит window а не lexicalenv и потому обnullуние функции на вызов не влияет.
Ответить с цитированием
  #9 (permalink)  
Старый 06.03.2014, 00:06
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от ryh
Я и говорю что след-но alert в данном случае...
new Function() - конструктор. Аргументы СТРОКИ.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #10 (permalink)  
Старый 06.03.2014, 00:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,125

ryh,

var f = new Function (alert('hello'));
alert("f = "+f);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать какая функция вызывается в браузере при наведении мыши? Бобр Элементы интерфейса 6 01.10.2012 04:01
Как вставить в событие, указатель на объект, который получает это событие? Pacan228 Общие вопросы Javascript 2 04.07.2012 19:53
как найти нужный объект? `p r o x y jQuery 2 05.05.2009 01:12
как сделать гиперсылку на объект javascript??? kos_walker Общие вопросы Javascript 3 30.09.2008 06:58
почему не удаляется динамически созданный элемент? magistr_bender Элементы интерфейса 5 15.09.2008 19:52