Цитата:
Цитата:
foo && foo ()? а еще можно делать так return foo && foo () своеобразная проверочка на выполнение)) |
Цитата:
|
Цитата:
/** * Xранилище картинок, принимает 2 параметра, либо имя картинки, тогда возвращает картинку * @param {Object} imagesHash ассоциативный массив в стиле {'имяКартинки', 'url'} * @param {Function} call функция которая вызовется по завершению загрузки ВСЕХ картинок. * @memberOf images */ image = (function() { // контейнер с картинками var imagesContainer = {}, // счетчик загруженных картинок counter = 0, // требуется загрузить картинок length = 0, // калбак callback; /** * @module images */ return function(imagesHash, call) { // если аргумент один вернуть картинку if (arguments.length == 1) return imagesContainer[imagesHash]; // если аргумента 2, то добавить картинки if (arguments.length == 2) { // зафиксировать калбак callback = call for (i in imagesHash) { var img = new Image() img.src = imagesHash[i] // при загрузке картинки img.onload = function() { // прибавить счетчик counter++ // если загружены все картинки вызвать калбак if (counter === length) { return callback && callback() //вот то место!!!!!!!!!!!!!!!!!!!!!!!!!!! } } // засунуть картинку в контейнер imagesContainer[i] = img // прибавить длину картинок которых требуется загрузить length++ } } } })() |
хм. ладно, завтра почитаю. завтра экзамен по информатике) автомат 95\100. емаё, уже сегодня!
PS "эти" места можно выделять *!* ... */!* чтобы выделить строку, поставь *!* на пустой строке, и */!* тоже. |
Цитата:
|
Цитата:
|
Мне кажется проблема не столь глобальна, нежели единообразие кода:
if (arguments.length == 1) return imagesContainer[imagesHash]; if (arguments.length == 2) { //... } Для чего придумали фигурные скобки: - чтобы не париться, где завершился код по условию - чтобы не парился интерпретатор, где завершился код по условию В первом случае при просмотре кода нужна лишняя мысль: - определить, где закончился код по условию Во втором случае такая мысль не мешает читать код. Также при написании кода приходиться выбирать какой стиль использовать в данной ситуации, что нифига не способствует сосредоточенности на выражении мысли через код. При расширении задачи по условию приходиться добавлять фигурные скобки, иначе - фиг знает как оно будет работать. Вывод: лень нифига не двигатель прогресса программиста ;) ps: Новички здесь абсолютно не при чём, это всё понты :) |
Gozar, согласен целиком и полностью !
|
Gozar, нет дело в том что у меня конструкция if означает проверить на что-то, а конструкция
func && func() и return func && func() означают проверить существование функции, если существует, то вызвать, и вернуть тру или фолс. тут меньше мыслей чем в if потому что тут все конкретезировано под функции. и да, новички здесь вообще не при чем, кто то зачем-то про них писать начал) |
return func && func(); if (func) { return func(); } Вариант с if проще для понимания(быстрее) через n количество времени. Дело не в возможностях программиста, а скорее в простоте чтения кода. Я уже писал выше. Я же не мификатор продумывать наиболее короткий код. Раньше я увлекался подобным в PHP, но в дальнейшем решил отказаться. Форматирование и простота понимания кода позволяют строить легко сложные системы, а также возвращаться в будущем к ним и развивать далее. В разделе работа часто пишут - Программист умеющий писать понятный код. Я считаю это важнее, нежели строить из себя минификатор. |
Часовой пояс GMT +3, время: 10:24. |