Czy można użyć zmiennej w pliku o nazwie first.js
wewnątrz innego pliku o nazwie second.js
?
first.js
zawiera zmienną o nazwie colorcodes
.
javascript
scope
SAK
źródło
źródło
<script src="http://datasource.example.net/first.js"></script><script src="second.js"></script>
Odpowiedzi:
Jak powiedział Fermin, zmienna o zasięgu globalnym powinna być dostępna dla wszystkich skryptów ładowanych po jej zadeklarowaniu. Możesz także użyć właściwości
window
or (w zakresie globalnym),this
aby uzyskać ten sam efekt.... w innym pliku ...
... w Twoim pliku html ...
źródło
window
jest zasięgiem globalnym - więc window.colorCodes i (globalny) obiekt colorCodes to ten sam obiekt.<script>var variable1 = true;</script> <script src="first.js"></script>
czy first.js zobaczy tę zmienną? Przetestowałem to w rozszerzeniu Google Chrome i nie zadziałało/* global colorCodes */
w powyższym wierszu, aby zapobiec komunikatowi o błędzie „... nie jest zdefiniowany”Możesz wyeksportować zmienną z pierwszego pliku za pomocą eksportu .
Następnie zaimportuj zmienną do drugiego pliku za pomocą importu .
eksport - MDN
źródło
Podobała mi się powyższa odpowiedź , ale mimo to nie zadziałała
bo ja byłem
declaring
tymi zmiennymiinside
JQuery$( document ).ready()
źródło
To powinno działać - zdefiniuj zmienną globalną w firstfile i uzyskaj do niej dostęp z secondfile:
firstfile.js:
secondfile.js:
Zwróć uwagę, że kolejność, w jakiej ładujesz pliki skryptów, ma znaczenie dla niektórych przeglądarek (na pewno IE6, może inne)
źródło
Za pomocą Node.js możesz wyeksportować zmienną za pośrednictwem modułu.
Następnie zaimportuj moduł / zmienną w drugim pliku za pomocą require.
Możesz użyć
import
iexport
aproach z ES6 używając Webpack / Babel, ale w Node.js musisz włączyć flagę i użyć rozszerzenia .mjs.źródło
Natknąłem się na amplify.js . To naprawdę proste w użyciu. Aby zapisać wartość, nazwijmy ją „myValue”:
Aby uzyskać do niego dostęp, masz
źródło
Jeśli przechowujesz kody kolorów w zmiennej globalnej, powinieneś mieć do niej dostęp z dowolnego pliku javascript.
źródło
Może robię to trochę inaczej. Nie jestem pewien, dlaczego używam tej składni, skopiowałem ją z jakiejś książki dawno temu. Ale każdy z moich plików js definiuje zmienną. Pierwszy plik, bez żadnego powodu, nosi nazwę R:
A potem, jeśli mam duży fragment kodu, który chcę posegregować, umieszczam go w osobnym pliku i pod inną nazwą zmiennej, ale nadal mogę odwoływać się do zmiennych i funkcji języka R. Zadzwoniłem do nowego TD bez żadnego powodu:
Widać, że w miejscu, w którym w „funkcji” TD nazywam funkcję R. Zdaję sobie sprawę, że nie zapewnia to żadnej wydajności w czasie wykonywania, ponieważ oba skrypty muszą zostać załadowane, ale pomaga mi to uporządkować kod.
źródło
źródło