Создавая библиотеку JavaScript, зачем использовать IIFE таким образом?
Я заметил, что многие библиотеки используют этот стиль ниже, чтобы определить свою библиотеку. Я также заметил, что первая самозапускающаяся функция имеет какое-то отношение к системам Require.js или AMD, в качестве аргумента у них всегда есть фабрика, я подробнее расскажу о Require.js, всегда в Browserify.
Почему основной код передается в конец первой самопризывающей функции в скобках, является ли это закрытием или просто считается анонимной функцией, я углублюсь в обе. Каковы преимущества этого? Похоже, что в закрытии автор передаетstring
, this
иcallback
.
Это даст моей библиотеке чистый безопасный способ глобализации основного объекта в этом примере нижеPlease
?
(function( globalName, root, factory ) {
if ( typeof define === 'function' && define.amd ) {
define( [], factory );
}
else if ( typeof exports === 'object' ) {
module.exports = factory();
}
else{
root[globalName] = factory();
}
}('Please', this, function(){
Я пытаюсь действительно глубоко погрузиться в JavaScript и создать свою собственную маленькую архитектуру MVC, я не хочу слышать, что я глуп, или это было сделано раньше, я хочу испытать себя и учиться.
Если есть какие-то большие ресурсы для создания библиотеки JavaScript или даже лучше библиотеки MVC, я бы хотел знать.