Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (22)

Наибольший вклад в теги

Все теги (188)

Лучшие ответы пользователя

Все ответы (1044)
  • Как "защитить" лендинг от скачивания html-кода всей страницы?

    Aetae
    @Aetae
    Тлен
    Никак.
    Ответ написан
    Комментировать
  • Продуктивно ли подобное обучение?

    Aetae
    @Aetae
    Тлен
    Возьми более базовые книги: по алгоритмам, паттернам, структурам, подходам итд. Не привязанные к конкретному языку. Это всегда будет полезно, и не потребует кодинга для практики.
    Эффективное же изучение конкретного языка - это наоборот чистая практика, чтение там должно идти только параллельно по мере необходимости.
    Ответ написан
    4 комментария
  • Почему данном случае теряется контекст this?

    Aetae
    @Aetae
    Тлен
    Простой ответ:
    Берём метод:
    метод = function(){
      console.log(this)
    };
    и(не важно как) пихаем его в какие-то объекты.
    Получаем:
    хрень.метод() // this - хрень
    хрень.кишки.метод() // this - хрень.кишки
    метод() // this - window
    
    хрень.метод.call(хрень.кишки) // this - хрень.кишки
    метод.call(хрень.кишки) // this - хрень.кишки
    метод.call(null) // this - null
    
    элемент.addEventListener('оппа', хрень.метод) //  this -элемент
    элемент.addEventListener('оппа', метод) //  this -элемент
    элемент.addEventListener('оппа', хрень.кишки.продукт.метод) //  this -элемент

    По сути this для фукции - это то, что идёт перед точкой, кроме тех случаев когда он переопределён явно. Всё, никакой эзотерики.)

    fn.call(!this ? this : obj) - это чушь скорее всего. Если this - falsy, то ставим его как this при вызове функции fn, иначе ставим obj. Falsy this может быть только при явном указании(или в strict режиме, при вызове функции напрямую("без точки перед ней")), и скорее всего передача пустого this в таком случае просто сломает выполнение fn.

    Ну ещё следует упомянуть стрелочную фукнцию:
    метод = () => {
      console.log(this)
    };
    это можно считать за явное указание this, потому что this тут всегда привязан тот, что был при создании стрелочной функции, независимо от того как и откуда её вызывают.
    Ответ написан
    3 комментария
  • Как получить счастливое число?

    Aetae
    @Aetae
    Тлен
    Тут всё плохо:
    function isHappy(array){
      // записываем пустой массив в array
      // (не важно что там мы получили, теперь этого нет)
      array = [] 
      // получаем 6 переменных с значением "ничего"(undefined)
      let[x,y,z,b,n,v] = array
      // сравниваем x+y+z == b+n и выкидываем, никак не используя
      // с помощью оператора запятая(,) в if попадает только v
      // как мы знаем во всех переменных undefined - if(undefined) - ложь
      if(x+y+z == b+n,v){
        console.log(`Число ${array} - счастливое!`);
      }
      else{
        console.log(`Число ${array} - несчастливое`);
      }
    }
    // вызываем isHappy с аргументом 000000, который является числом 0, 
    // просто записанным длинно, а не массивом
    isHappy(000000)
    Ответ написан
    8 комментариев

Лучшие вопросы пользователя

Все вопросы (1)