Показать сообщение отдельно
  #1 (permalink)  
Старый 27.08.2014, 09:31
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

метод bind или обычное замыкание?
возьмем вот такой код:
<html>
	<body>
		<div>my text</div>
		<script type="text/javascript">

function clk(e, flag)
	{
	console.log(this);
	console.log(e);
	flag = !flag;
	console.log(flag);
	}

var div = document.querySelector('div');
div.onclick = clk.bind(div, false);
		</script>
	</body>
</html>


кликнув по div'у я заметил 2 минуса:
1. не нашел объект event который какбэ должен быть;
2. значение флага к большому сожалению не сохраняется((

и есть старое доброе обычное замыкание:
<html>
	<body>
		<div>my text</div>
		<script type="text/javascript">
var div = document.querySelector('div');
div.onclick = function (flag)
	{
	return function (e)
		{
		console.log(this);
		console.log(e);
		flag = !flag;
		console.log(flag);
		};
	}(false);
		</script>
	</body>
</html>

которое отрабатывает на ура.

я на сегодняшний день пришел к выводу, что bind не всегда хорош.. если меня не переубедят в обратном

п.с. тестил в хроме
Ответить с цитированием