Jump to content

cat

User
  • Posts

    34
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by cat

  1. Как сверстать кнопки с такими декоратиными элементами сверху/снизу (см. скрин).
    Подозреваю, что через псевдоэлементы, но я знаю только как сделать это в виде треугольников.
    Есть ли возможность сделать это в виде кривой, как на скрине?

    https://www.dropbox.com/s/8x15uim5fzrcpo9/Screenshot 2016-09-19 22.52.44.png?dl=0

  2. Прошу объяснить мне почему `wrapper` имеет отступ.

    https://jsfiddle.net/psr1919plus21/3qbuqjuz/

    Понял проблему: img – инлайновый элемент.

    Решение 1: Сделать img блочным: display:block.
    Решение 2: Поставить нулевой интерлиньяж: line-height: 0;

    Всем спасибо)

     

    p.s.:  Решение 2 не работает.

  3. >в js контроллер и представление совмещены
    backbone позволяет разделить представление и бизнеслогику.

    По поводу основного вопроса: сильная связанность – плохо, слабая связанность – хорошо.
    В идеале ни один из модулей не должен ничего знать о других модулях и зависеть от них.
    Я думаю, что тут необходим промежуточный слой(медиатор).
    Модули должны только публиковать события, а медиатор соответственно реагировать на них.

    http://largescalejs.ru/the-mediator-pattern/

    • Like 1
  4. call и apply вызывают функцию в таком контексте, как, если бы эта функция была методом другого объекта.

     

    т.е. при вызове myFunc.call(obj) на самом деле происходит следующее:

    obj.myFunc = myFunc;
    obj.myFunc();
    delete obj.myFunc;

    В случае call все аргументы после первого будут переданы функции.

    name = 'global name';
    myObj = {name:"myObject"};
    
    sum = function(x, y) {
      console.log(this);
      console.log(this.name);
      return x + y;
    };
    
    sum(1, 2); // console.log(this) == window, console.log(this.name) == 'global name', return == 3.
    
    sum.call(myObj, 2, 4); // console.log(this) == '{name:"myObject"}', console.log(this.name) == 'myObject', return == 6.
    

    В случае с apply все по аналогии, только аргументы функции передаются в массиве.

  5. >я конечно понимаю, что простой такой
    Еще какой, дай ссылки на гитхаб на строку где сохраняешь состояние в локалстораж и где потом обращаешься к нему при загрузке страницы, а не на репозиторий.

  6. Всем спасибо, с замыканиями разобрался. Действительно большинство проблем было в понимании именно того как работают функции. Попробую обьяснить своими словами что понял (возможно для новичков как я это пригодится тк находимся на одном уровне понимания) прошу поправить если что то не так или дополнить:

    Итак замыкания - это когда функция использует переменные которых по идее уже не существует. То есть есть 2 ф-ции внешняя и внутренняя, во внешней обьявлена переменная x и возвращает она функцию f

    Function func( ) {

    Var x = 0;

    Return function f () {

    Return x++;

    }

    }

    Теперь при вызове внешней функции она вернет функцию f, а переменная x по идее после срабатывания функции уничтожится

    Var a = func() - то есть вызвали внешнюю ф- цию и присвоили ее return переменной a.

    То есть переменная a сейчас равна вложенной ф-ции function f() { return x++} . И теперь весь смысл замыкания в том что переменная x++ ссылается на обьявленную переменную из внешней ф-ции которая как писал выше по идее должна уничтожиться, но в этом и есть замыкания что если такая ссылка на несуществующую есть то она не уничтожается, а сохраняется в невидимом обьекте и у внутренней функции f остается к ней доступ.

    P.s наверное лютый баян написал, но думаю лишним не будет)

     

    Все правильно написал. Все так)

  7. Чтобы понять замыкания нужно точно знать как работают функции.
    Советую вам в первую очередь учить js, а после этого подкреплять знания практикой.

     

    История замыканий это история про лексичекую область видимости.

    http://kharchuk.ru/JavaScript.pdf

    Страница 156.

     

    https://www.dropbox.com/s/ahgcimlrisuik95/Screenshot%202016-03-11%2005.29.58.png?dl=0

    • Like 1
  8. 1000px X 1000px – это спрайт? Действительно ли все иконки из него используются? Можно оставить только необходимые.

    Можно сохранить в любом формате.
    Я бы делал в svg (с фолбеком в png для старых браузеров) и добавлял бы иконку кнопке псевдоэлементом ::before или ::after с нужной прозрачностью.

  9. obj.toString() – вызывает метод toString объекта obj (если таковой имеется, если такого метода нет, то ищет его в цепочке прототипов пока не упрется в Object.prototype.toStriing).  Контекст – obj.

     

    Object.prototype.toString.call(obj) – гарантированно вызывает метод toString из Object.prototype. Контекст – obj.

    • Like 2
  10.  

    Предупреждение: хотя на сегодняшний момент большинство браузеров поддерживают свойство Object.prototype.__proto__, его поведение только недавно было стандартизировано в новой спецификации ECMAScript 6. Если вам требуется поддержка браузеров до этой спецификации, рекомендуется использовать вместо него метод Object.getPrototypeOf().

    Хотя конечно есть всякие Babel.js, но всё равно рановато ящитаю.

     

    Мне кажется, это уже лишняя перестраховка.

    С зеленого начинается IE 11.

    См. скриншот: https://www.dropbox.com/s/12xlxqvjw9f1u3f/Screenshot%20from%202015-11-20%2023%3A17%3A16.png?dl=0

    Табличка тут: https://kangax.github.io/compat-table/es6/

    А те, кто использует ИЕ 10- должны страдать)

     

×
×
  • 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