看情况,我简单分一下
第一种 最简单的原始的,
可以的情况下
比如 index.html 中有 <script src="a.js'></script> <script src="b.js'></script> 并且 a.js引用在b.js前的情况下,a.js 中的定义的是这种情况 var a = 1 , b.js可以直接打印出a console.log(a) // 1
不可以的情况
a.js 中 (function(){ var a = 1 })() b中是取不到a的,这个详情需要看 变量的作用域
更多的情况是使用的 webpack等打包工具的情况下 就更需要视情况分析
在一个js中定义的全局变量,在另一个js中可以直接使用。
将两个js引入同一个页面里,就相当于代码都在一起了,全局变量就可以用了。如果不方便的话也可以加在url后面传过去
比如:
//创建a.js
var a='hello'
//创建b.js
alert(a)
//创建hello.html
<html>
<script src="a.js"></script>
<script src="b.js"></script></html>
是的他们没有全局变量之说。但有别的办法可以实现。只有当文件可同时访问定义在一个页面内的main.js,才可实现同一个变量的共享
若1.html,2.html存在父子窗口关系,即其中一个是另一个open出来的,
则可以通过opener或window.dialogArguments在访问同一个页面main.js内定义的变量,即可实现所谓的共享。
如果彼此不能共享一个页面里的main.js,则无法互相访问。