Как правильно удалить функцию 
		
		
		
		Здравствуйте. 
	Как правильно удалить функцию? Я пришел к, по сути, двум вариантам: 
function myfunc () {
//Здесь какой-то код
}
// 1 вариант
myfunc = null;
// 2
var myfunc = null;
// 3
function myfunc () {};
Какой по-вашему корректный способ и, желательно, почему? Или есть совершенно другой способ удаления функции?  | 
	
		
 с какой целью? 
	 | 
	
		
 vasa_c, 
	Сайт полностью динамический, поэтому нужно мусор удалять при переходе на ту или иную страницу. К примеру: Если функция myfunc существую, значит в ней есть мусор (классы, события и пр.), и прежде чем подгрузить новые данные удаляем те, что содержит эта функция, а затем саму функцию. И при переходе на следующую страницу, если функции нет, значит и мусора нет, а если есть, выполняем туже процедуры, которую я выше описал.  | 
	
		
 Возьми какой-нибудь UI-фреймворк/либу (react, backbone, angular) и не трахай мозг) 
	Ну, а касательно задачи - первый вариант, конечно же, он единственный логически верный.  | 
	
		
 Erolast, 
	Все проблема не в том, чтобы написать сайт, а в том, чтобы набраться опыта, научиться работать с голым JS. Фреймворки использовать проще простого!  | 
	
		
 В функции нет мусора, кроме её самой. 
	Мусор в конкретных контекстах вызовов.  | 
	
		
 vasa_c, 
	К примеру: При переходи на страницу приватной переписки, в конце всего кода JS создается функция 
// И вот ее содержимое должно быть уничтожено до того как сама функция канет в лето
destroy function()
{
    clearTimeout(idTimeout); //Т.к. сообщ. подгружаются динамически, то при переходе на другую страницу убиваем таймер, чтобы сообщения в некуда не подгружались
  // Массив с ключом http['DR'] содержит объект XHR и если при переходе на другую страницу как раз таки осуществляется запрос для получения новых данных, то отменяем его
  if (typeof http['DR'] != "undefined") {
	http['DR'].abort();
	delete http['DR'];
  }
 // ..... И так далее... Удаляем другие данные, если требуется
}
 | 
	
		
 Цитата: 
	
  | 
	
		
 Erolast, 
	Я с вами согласен, но, как мне кажется, чтобы браться за изучение того или иного фреймворка, нужно понимать как устроен, так скажем, низкий уровень языка программирования.  | 
	
		
 Если ты хочешь удалять и ф-цию и ссылку на нее, не используй function declaration, делай так: 
	
foo=function (){}
alert(delete foo)
// true
вторые 2 способа фактически равноценны, 3-й способ имеет смысла, ты там вместо одного объекта функции ложешь в память другой объект, хрен нахрен меняешь.  | 
	
		
 Таков подход запрещен в ES5. 
	 | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 functionName = null; Цитата: 
	
  | 
	
		
 Цитата: 
	
 Цитата: 
	
 Цитата: 
	
  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
  | 
| Часовой пояс GMT +3, время: 10:23. |