Size: a a a

2019 December 12

M

Maksim in JS
Спасибо, попробую
источник

ЛД

Любовь Дядющенко... in JS
Добрый вечер!
Подскажите, вот у нас глобальная среда, допустим, window
Если мы пишем this.innerHeight, это корректно?
Только учу и разбираюсь, заранее спасибо)
источник

В

Вадим in JS
Переслано от Вадим
Ребят! Всем привет. Предлагаю решить задачку на JavaScript. Интересно, кто и какие решения предложит.
Имеется некая база данных, в которой находится 100 проектов, 150 скриншотов. Элементы загружаются по Ajax через scroll. Также у нас есть папка "Все удаленные", куда помещаются все удалённые проекты и скриншоты. На данный момент в этой папке находится 10 удалённых проектов и 10 удалённых скриншотов. Но к сожалению там при scroll Ajax они отображаются неверно, т.к. для всех элементов используется один общий Dashboard.page и тем самым при загрузке возникает конфликт Dashboard.page элементов. Для быстрого понимания код был написан просто и легко. Кому какие решения приходят в голову?)
источник

В

Вадим in JS
Любовь Дядющенко
Добрый вечер!
Подскажите, вот у нас глобальная среда, допустим, window
Если мы пишем this.innerHeight, это корректно?
Только учу и разбираюсь, заранее спасибо)
Добрый. А где именно ты пишешь это? В каком именно блоке?
источник

ЛД

Любовь Дядющенко... in JS
Допустим, вообще без блока
источник

ЛД

Любовь Дядющенко... in JS
То есть просто объявляю переменную и присваиваю ей значение
источник

ВР

Ваня Реутенко... in JS
лучше так не делать, но это будет работать
источник

ВР

Ваня Реутенко... in JS
таким образом работают переменные обьявленные через var
источник

ВР

Ваня Реутенко... in JS
а они deprecated
источник

В

Вадим in JS
Любовь Дядющенко
Допустим, вообще без блока
можно, но это будет нечитаемо и другой программист, который увидит в твоем коде this в глобальной области, будет терять время и искать, к какому контексту относится этот this.
А если ты укажешь window, то ему уже не потребуется для понимания делать дополнительных действий, т.к. уже понятно, что window это window.
источник

ВР

Ваня Реутенко... in JS
лучше вообще не присваивать ничего в window без крайней необходимости
источник

ЛД

Любовь Дядющенко... in JS
Спасибо)
Я не для использования, а больше для понимаю работы this и понимания что такое глобальная среда
источник

В

Вадим in JS
Лично я window использую всегда в одном только случае, когда пишу код. Примерно так:

(function(window, document) {
   'use strict';

  function Module() {
     
  }

   Module.prototype.set = function(option, value) {
       //body
   };

   Module.prototype.get = function(option) {
       //body
   };
   
   window.MyModule = window.MyModule || new Module();
})(window, document);
источник

В

Вадим in JS
Т.е. при написании применяю инкапсуляцию (самовызывающая анонимная функция - некий NameSpace), и в ней в глобальную область выношу потом через window свой объект..
источник

S(

Sergei (@MadaShindeI... in JS
Abylaikhan Amanzholov
пацантрэ, я могу такой массив в виде строки '[45.56432, 54.21458]' превратить в настоящий массив и разделить на 2 переменных?
Погода, она такая)
источник

В

Вадим in JS
Любовь Дядющенко
Спасибо)
Я не для использования, а больше для понимаю работы this и понимания что такое глобальная среда
this - очень нужная штука.

Например, ты на элемент устанавливаешь событие click и при клике тебе с элементом что-то нужно сделать, например, применить ему стиль.

var element = document.querySelector('[data-item="item"]');

element.onclick = function() {
 // здесь this - это element
 this.style.border = '1px solid red';

 // а программист, который не знаком с this и не знает, как он работает, сделает типичную эту ошибку:
 // снова получит этот элемент внутри обработчика и выполнит для него соответствующие действия..
 document.querySelector('[data-item="item"]').style.border = '1px solid red';
};
источник

ЛД

Любовь Дядющенко... in JS
Ага, это я осознала уже
То есть this берет свое окружение
источник

В

Вадим in JS
Не всегда
источник

ЛД

Любовь Дядющенко... in JS
Если оно определено?
источник

В

Вадим in JS
function a() {
 alert(this);
}

a();
источник