Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.02.2017, 18:49
Интересующийся
Отправить личное сообщение для nologinname Посмотреть профиль Найти все сообщения от nologinname
 
Регистрация: 04.10.2011
Сообщений: 10

не могу понять этот код
({1:[function(_dereq_,module,exports){ ///function code },{}],2:[]})

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


данный код является частью hls.js файла библиотеки обработки HLS (https://cdn.jsdelivr.net/hls.js/latest/hls.js)
Ответить с цитированием
  #2 (permalink)  
Старый 12.02.2017, 12:37
Аспирант
Отправить личное сообщение для TestUser013 Посмотреть профиль Найти все сообщения от TestUser013
 
Регистрация: 13.07.2013
Сообщений: 94

По сути это объект с массивами функций. Если взять только тот кусок, что вы скинули, то функцию можно будет вызвать вот так:

obj = ({1:[function(_dereq_,module,exports){ ///function code },{}],2:[]});

obj[1][1](_dereq_, module, exports);
Ответить с цитированием
  #3 (permalink)  
Старый 13.02.2017, 12:55
Интересующийся
Отправить личное сообщение для nologinname Посмотреть профиль Найти все сообщения от nologinname
 
Регистрация: 04.10.2011
Сообщений: 10

это всё именно так, но, как я и гововрил, этот объект не приравнивается к переменной...
и, на сколько я понимаю, сначала идёт объект, а в нём массив, сл-но синаксис выше не сработает... obj.1[1] - имя объекта не может быть цифрой
Ответить с цитированием
  #4 (permalink)  
Старый 13.02.2017, 13:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от nologinname
это всё именно так, но, как я и гововрил, этот объект не приравнивается к переменной...
Ты не видишь всей картины...

Ты привел лишь огрызок кода и не показал всей т.с. конструкции.
Ты показал лишь концовку конструкции

(function(){})();

Т.е. запуск анонимной функции.
В круглых скобках передаются параметры для запуска анонимной функции. Внутри нее будут доступны параметры с именами...

Пример
(function(Obj){
   Obj[1]();
})({1:function(){alert('ok')}});
Ответить с цитированием
  #5 (permalink)  
Старый 13.02.2017, 13:53
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от nologinname
не понимаю зачем так сделано
Ждедай стайл граничащий с нидзя кодом...
Ответить с цитированием
  #6 (permalink)  
Старый 13.02.2017, 21:47
Интересующийся
Отправить личное сообщение для nologinname Посмотреть профиль Найти все сообщения от nologinname
 
Регистрация: 04.10.2011
Сообщений: 10

весь код в ссылке под первым постом...

вот часть..

({1:[function(_dereq_,module,exports){

function EventEmitter() {
this._events = this._events || {};
this._maxListeners = this._maxListeners || undefined;
}
и т.д.
})
Ответить с цитированием
  #7 (permalink)  
Старый 14.02.2017, 00:46
Аспирант
Отправить личное сообщение для fuckingquest Посмотреть профиль Найти все сообщения от fuckingquest
 
Регистрация: 28.10.2016
Сообщений: 70

это скорей всего что-то связанное с eval, возможно этот код приводится к строчному представлению и эвалится
ob1 = eval("{a: 1}")
ob2 = eval("({a: 2})")

console.log(ob1, ob2)

//>>>> 1 { a: 2 }
Ответить с цитированием
  #8 (permalink)  
Старый 14.02.2017, 01:32
Интересующийся
Отправить личное сообщение для nologinname Посмотреть профиль Найти все сообщения от nologinname
 
Регистрация: 04.10.2011
Сообщений: 10

Сообщение от fuckingquest Посмотреть сообщение
это скорей всего что-то связанное с eval, возможно этот код приводится к строчному представлению и эвалится
ob1 = eval("{a: 1}")
ob2 = eval("({a: 2})")

console.log(ob1, ob2)

//>>>> 1 { a: 2 }
не думаю... если глянуть исходник, там всё совсем не так...
Ответить с цитированием
  #9 (permalink)  
Старый 20.02.2017, 17:51
Интересующийся
Отправить личное сообщение для nologinname Посмотреть профиль Найти все сообщения от nologinname
 
Регистрация: 04.10.2011
Сообщений: 10

http://www.adequatelygood.com/JavaSc...-In-Depth.html
вот ответ, на вопрос, о синтаксисе )))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу понять, где ошибка в коде Darya_kod Общие вопросы Javascript 5 10.07.2016 22:13
insertAfter не могу понять принцип работы Spirtikys Общие вопросы Javascript 2 07.06.2016 23:28
не могу понять в чем проблема с tooltip malin (X)HTML/CSS 2 15.02.2016 12:54
Отладчик выдаёт ошибку . Не могу понять Jesus1 Общие вопросы Javascript 1 30.08.2015 15:19
не могу понять в чём ошибка scuter Общие вопросы Javascript 2 28.08.2008 15:22