Да, они имеют одни и те же глобальные переменные, и это один из приемлемых способов создания модулей в Javascript
<script src="jquery.js"></script> <!-- Include the jQuery library.
Creates a global jQuery variable -->
<script src="mycode.js"></script> <!-- code uses the jQuery
via that global variable -->
Обратите внимание, что поскольку глобальные переменные являются общими, при написании собственных сценариев вы должны стараться использовать глобальные переменные только тогда, когда это строго необходимо, чтобы избежать случайных конфликтов имен.
Обычным шаблоном является обертывание вашего кода внутри немедленно вызываемой функции, чтобы превратить вещи в локальные переменные вместо глобальных.
//instead of littering the global namespace
var myVar = /*...*/
function f1(){ /*...*/ }
function f2(){ /*...*/ }
//Put the related stuff in a namespaced module.
var myModule = (function(){
var myVar = /*...*/
function f1(){ /*...*/ }
function f2(){ /*...*/ }
return {
f1: f1,
f2: f2
};
}());
//myModule is now a global "namespace" object containing just your public
// stuff inside it.