Jump to content
  • 0

Замыкания


psywalker
 Share

Question

Recommended Posts

  • 0

Т.е. хочешь сказать, что со свойствами ноды этот пример не проктит и замыкания там полюбому нужны?(пример посмотрю только завтра, пока только вопрос)

Link to comment
Share on other sites

  • 0
Т.е. хочешь сказать, что со свойствами ноды этот пример не проктит и замыкания там полюбому нужны?(пример посмотрю только завтра, пока только вопрос)

Я хочу сказать, что, по идее, нельзя в цикле задать (присвоить) события для каждого элемента, не используя замыкания. Как-то так)

Link to comment
Share on other sites

  • 0
Я хочу сказать, что, по идее, нельзя в цикле задать (присвоить) события для каждого элемента, не используя замыкания. Как-то так)

Можно присваивать свойства ноде. Это гораздо лучше, чем использовать замыкания.

Link to comment
Share on other sites

  • 0
Можно присваивать свойства ноде. Это гораздо лучше, чем использовать замыкания.

Вот про это я и говорю. :ph34r:

Кстати я создал пост именно по этой причине, так как есть мнения, что свойства ноды вполне и всегда могут заменить замыкания. Вот и хотелось-бы увидеть примеры, где это не так, и где явно нужно использовать именно замыкание!

Link to comment
Share on other sites

  • 0
Можно присваивать свойства ноде. Это гораздо лучше, чем использовать замыкания.
Вот про это я и говорю. :ph34r:

Кстати я создал пост именно по этой причине, так как есть мнения, что свойства ноды вполне и всегда могут заменить замыкания. Вот и хотелось-бы увидеть примеры, где это не так, и где явно нужно использовать именно замыкание!

Ну тогда я совсем запутался. Мой пример можно сделать без замыканий? O_o

Link to comment
Share on other sites

  • 0
psywalker, создай, допустим 10 дивов, и навесь им в цикле событие на клик, чтоб по клику выскакивал alert(); с номером дива.

м? Что мешает каждому диву при сздании вешать свойсво хранящее его номер?

Link to comment
Share on other sites

  • 0

Ничто не мешает. Без замыканий можно обойтись. Я лишь объяснял psywalker'у, что происходит у DjTarik'а.

Мне больше интересно почему s0rr0w считает, что присваивать свойства ноде гораздо лучше, чем использовать замыкания?

Link to comment
Share on other sites

  • 0
DjTarik

А я не понял, чё в твоём примере у тя происходит?

Можешь дать полный пример, код. И ещё бы хорошо вообще архив с классами и эффектами на них.

Ммм.... Там как бы и есть полный рабочий код. Сейчас странички нету - позже выложу.

Ничто не мешает. Без замыканий можно обойтись. Я лишь объяснял psywalker'у, что происходит у DjTarik'а.

Мне больше интересно почему s0rr0w считает, что присваивать свойства ноде гораздо лучше, чем использовать замыкания?

Расскажите мне (а лучше на примере), как можно обойтись без замыканий? O_o C теми же дивами и событиями на них...

Link to comment
Share on other sites

  • 0

Great Rash

Вот, не вопрос.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
div { background: red; margin: 5px 0;}
</style>
</head>

<body>

<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>

<script type="text/javascript">
var bodyNode = document.getElementsByTagName('body')[0]
var div = bodyNode.getElementsByTagName('div')

for(var i=0;i<div.length;i++){
div[i].num = i+1
div[i].onclick = function(){alert(this.num)}
}
</script>
</body>
</html>

DjTarik

Ммм.... Там как бы и есть полный рабочий код. Сейчас странички нету - позже выложу.

Давай, обязательно и опиши задачу в краце.

Link to comment
Share on other sites

  • 0
Мне больше интересно почему s0rr0w считает, что присваивать свойства ноде гораздо лучше, чем использовать замыкания?

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

А замыкания ИМХО - сильно напоминает КСС хаки ( а-ля +№* html body - увидит только Opera старше 9.64 но младше 10.10 ) - которые, да работают, но при этом с трудом поддаются понимаю

Link to comment
Share on other sites

  • 0

Все там понятно... вот к примеру:

// можно так
var d = new Date();
alert(
d.getFullYear()
);

// а можно так
alert(
(new Date()).getFullYear()
);

просто в яваскрипте любая функция может быть тут же вызвана, на этом и основаны замыкания.

Основное их применение для навешивания событий в цикле - да тупо кода меньше. Я тут в соседней теме делал замеры - разницы в скорости что с замыканиями, что без них практически нет. Никто не заставляет вас их юзать, удобно вам вешать атрибуты - так вешайте на здоровье.

Link to comment
Share on other sites

  • 0

Ну до тех пор пока код только для себя и уверен что кроме тебя никто не будет с ним работать - то тут да.

А так если не брать самых простых примеров, то замыкания в целом труднее для понимания, и чем их больше тем сложнее код, а объективных причин использовать именно их нет.

Ну это ИМХО конечно. Главное же по сути топика, нет случаев, когда без замыканий нельзя обойтись.

Link to comment
Share on other sites

  • 0

Глядел я этот фраймворк - . но как раз приведу обратный аргумент.

Никому кроме разрабов это фраймворка кишки его по идее не нужны. Кроме того там сделана удобнейшая система для расширения этого фраймворка своими лапками без необходимости ковырятся в его кишках :unsure:

Это же одна из основ современного ООП - инкапсуляция - т.е. скрытие внутренних методов работы и выставление “наружу” - удобного интерфейса.

З.ы. поправьте если не прав, а то прогуливал очень много пар в университете… :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy