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