W aplikacji, którą debuguję, poprzedni programista wydaje się polegać na underscore.js, aby zrobić kilka rzeczy.
W mojej konsoli przeglądarki wciąż pojawiają się sporadycznie błędy „_ jest niezdefiniowany”, co uniemożliwia prawidłowe działanie części aplikacji.
Biblioteka podkreślenia w końcu wydaje się ładować, ponieważ jestem w stanie to zrobić console.log(_)
w mojej przeglądarce i uzyskaj w rezultacie gigantyczny obiekt, gdy strona zostanie w pełni załadowana.
Moje pytanie brzmi: czy istnieje preferowany sposób na zawijanie funkcji opartych na podkreśleniu? (Innymi słowy, programiści podkreślający często używają czegoś podobnego do starej praktyki owijania wewnątrz logiki $(function(){...})
aby upewnić się, że działa po załadowaniu jQuery?)
Odpowiedzi:
0 dla odpowiedzi № 1Czy ten skrypt jest bliżej tego, czego szukasz? Użyłem programu ładującego skrypty z tutaj
Ładuje podaną listę skryptów i udostępnia uchwyt wywołania zwrotnego, w którym można wywołać zależne funkcje js
<html>
<head>
<script type="text/javascript">
function loadScripts(array, callback) {
var loader = function(src, handler) {
var script = document.createElement("script");
script.src = src;
script.onload = script.onreadystatechange = function() {
script.onreadystatechange = script.onload = null;
handler();
}
var head = document.getElementsByTagName("head")[0];
(head || document.body).appendChild(script);
};
(function run() {
if (array.length != 0) {
loader(array.shift(), run);
} else {
callback && callback();
}
})();
}
loadScripts([
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"
], function() {
console.log(_);
var arr = ["jQuery", "underscore", "jasmine"];
_.each(arr, (val) => {
console.log(val);
});
});
</script>
</head>
<body>
</body>
</html>