Еще у меня из-за замыкания начинается паранойя:
proto = { method: function (…) { var a, b, c, d, …; Object.keys(…).forEach(function (…) { //к примеру, тут не нужны a, b, c, d }); } } приходится выносить в отдельный метод: proto = { _method: function (…) { //тут this → window }, method: function (…) { var a, b, c, d, …; Object.keys(…).forEach(this._method); } } но метод в прототипе, ничего не делающий с this, кажется лишним, выносим его в отдельный объект: utils = { method: function (…) {…} } proto = { method: function (…) { var a, b, c, d, …; Object.keys(…).forEach(utils.method); } } в итоге придется искать в коде, что же там за utils.method, который возможно состоит из пары строчек и самостоятельно не имеет смысла, появляется проблема с передачей дополнительных переменных. а можно было всего-лишь написать: proto = { method: function (…) { var a, b, c, d, …, keys = Object.keys(…), i = keys.length; while (i--) { … } } } поэтому forEach использую, только когда действительно нужен локальный скоп, а еще в светлом будущем ожидается let |
proto = { method: function (…) { var a, b, c, d, …, keys = Object.keys(…), i = keys.length; while (i--) { //к примеру, тут не нужны a, b, c, d } } } И в чём разница? |
Ну так они никуда не замыкаются, паранойя не наступает :D
|
А что меняется от того, замыкаются они или не замыкаются? Не пойму, откуда паранойя растёт.
|
Да ничего страшного не происходит. Я понимаю, что разница будет заметна только в тестах, где 100500 раз одно и тоже повторяют, но просто зачем все эти лишние действия (создание функции, связь скопов, call, …) будут происходить, если используя while, их не будет.
|
я тоже сначала заморачивался по этому поводу, а потом перестал, когда сравнил скорость...
|
Цитата:
Цитата:
вот, float, это правильный подход при борьбе с паранойей, я считаю :) |
Цитата:
|
Цитата:
Но на следующем - возникает потребность не в совершенстве кода, а в новой функциональности. И маховик начинает раскручиваться заново: добавляем, например, раскраску строк в зависимости от значений, и оказывается, что простой алгоритм не способен решить эту задачу. |
Цитата:
|
Часовой пояс GMT +3, время: 17:07. |