не могу понять этот код
({1:[function(_dereq_,module,exports){ ///function code },{}],2:[]})
не понимаю зачем так сделано, и как вызвать данную функцию, если выражение ни к чему не приравнивается.... данный код является частью hls.js файла библиотеки обработки HLS (https://cdn.jsdelivr.net/hls.js/latest/hls.js) |
По сути это объект с массивами функций. Если взять только тот кусок, что вы скинули, то функцию можно будет вызвать вот так:
obj = ({1:[function(_dereq_,module,exports){ ///function code },{}],2:[]}); obj[1][1](_dereq_, module, exports); |
это всё именно так, но, как я и гововрил, этот объект не приравнивается к переменной...
и, на сколько я понимаю, сначала идёт объект, а в нём массив, сл-но синаксис выше не сработает... obj.1[1] - имя объекта не может быть цифрой |
Цитата:
Ты привел лишь огрызок кода и не показал всей т.с. конструкции. ;) Ты показал лишь концовку конструкции (function(){})(); Т.е. запуск анонимной функции. :) В круглых скобках передаются параметры для запуска анонимной функции. Внутри нее будут доступны параметры с именами... Пример (function(Obj){ Obj[1](); })({1:function(){alert('ok')}}); |
Цитата:
|
весь код в ссылке под первым постом...
вот часть.. ({1:[function(_dereq_,module,exports){ function EventEmitter() { this._events = this._events || {}; this._maxListeners = this._maxListeners || undefined; } и т.д. }) |
это скорей всего что-то связанное с eval, возможно этот код приводится к строчному представлению и эвалится
ob1 = eval("{a: 1}") ob2 = eval("({a: 2})") console.log(ob1, ob2) //>>>> 1 { a: 2 } |
Цитата:
|
http://www.adequatelygood.com/JavaSc...-In-Depth.html
вот ответ, на вопрос, о синтаксисе ))) |
Часовой пояс GMT +3, время: 16:18. |