Javascript 导入文件(网络工作者)

Javascript 导入文件(网络工作者),javascript,html,web-worker,Javascript,Html,Web Worker,我曾尝试使用importScripts将第二个JavaScript文件加载到我的web worker中,但尽管没有发生错误,但它不起作用。我把问题缩小到一个非常简单的情况: 在主HTML文件中: <script> var w = new Worker("script1.js"); w.addEventListener("message", function(e){ alert(e.data); }) w.postMessage(); </script> 在scr

我曾尝试使用importScripts将第二个JavaScript文件加载到我的web worker中,但尽管没有发生错误,但它不起作用。我把问题缩小到一个非常简单的情况:

在主HTML文件中:

<script>
var w = new Worker("script1.js");
w.addEventListener("message", function(e){
    alert(e.data);
})
w.postMessage();
</script>
在script2.js中:

a = 6

我希望看到一个显示6的对话框,因为通过导入script2.js,a从5更改为6,但是对话框显示5。我缺少什么?

在函数中使用
var a
意味着
a
将始终是私有的。因为,JS更喜欢在发布
a
的函数中访问更本地化的
a
。您可以发布
self.a
,它应该是6,正如您所期望的那样


编辑:最近有人亲自问我这件事,所以我做了一个演示来澄清这一行为:

importScripts(“script2.js”);-->self.postMessage(a);因为你导入了它,所以不能再引用正确的self了吗?pagedemos.com会从谷歌安全浏览中返回一个警告。你能把它移到类似jsfiddle的地方吗?
a = 6