Я заметил, что многие библиотеки используют этот стиль ниже для определения своей библиотеки. Я также замечаю, что первая функция self invoking имеет какое-то отношение к системам Require.js или AMD, они всегда имеют factory в качестве аргумента, я буду больше смотреть в Require.js, всегда в Browserify.
Почему основной код, переданный в конце первой функции самозапуска в круглых скобках, является закрытием или просто считается анонимной функцией, я буду копать глубже в обоих. Каковы преимущества этого? Похоже, что внутри закрытия автор передает string
, this
и a 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, я бы с удовольствием узнал.