Всем привет! Ребята, учусь js, разбирая плагин dropzone.js. В ходе разбора натолкнулся на такую конструкцию:
{
key: "emit",
value: function emit(event) {
this._callbacks = this._callbacks || {};
var callbacks = this._callbacks[event];
if (callbacks) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
for (var _iterator = callbacks, _isArray = true, _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
var callback = _ref;
callback.apply(this, args);
}
}
return this;
}
Кто нибудь может сказать в чем смысл выражения:
_iterator = _isArray ? _iterator : _iterator[Symbol.iterator]() ?
Ведь согласно условию: _isArray = true, ветка else в выражении
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
никогда не будет достигнута.
Судя по предоставленному коду, речь идет про github
.
Однако на самом деле разработка ведется на gitlab
, о чем указано в readme
:
This is no longer the official repository for Dropzone. I have switched to gitlab.com as the primary location to continue development.
Указанные строки находятся в месте объявления класса Emitter
, а конкретнее в реализации метода emit
Если пройти на gitlab увидим простой метод:
emit(event, ...args) {
this._callbacks = this._callbacks || {};
let callbacks = this._callbacks[event];
if (callbacks) {
for (let callback of callbacks) {
callback.apply(this, args);
}
}
return this;
}
Из которого явно видно, что данный код является реализацией for..of
после сборки.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть код в листинге 1 и есть функция в листинге 2Оба фрагмента находятся в одном файле и фрагмент из листинга 1 хорошо отрабатывает в других...
Хочу чтобы программа определяла день недели и заполняла расписание в связи с этим, но она заполняет только div, а li не заполняет, что не так?