动态创建完script之后 可以访问到其他模块的内容 但删除掉script后 依旧能访问到这个内容 怎么办
<script src="./js/jQuery.js">script>
<script type="module">
// 创建script标签
var _script = document.createElement('script');
_script.type = 'text/jacascript';
_script.src = 'url';
$('head').append(_script);
import * as mkh from './js/mkh.js'
// 调用
console.log(mkh); // module{}
console.log(mkh.name); // 123
// 删除script标签
var scriptList = document.getElementsByTagName("script")
scriptList[0].remove()
console.log(mkh); // module{}
console.log(mkh.name); // 123
script>
script标签只是告诉浏览器要加载对应路径下面的js文件,它就是一个指令,你添加以后,浏览器已经获取了指令加载了js文件,js文件的内容已经放在内存当中了,这时候你把指令删除了,js内容没有删除的呀,指令在你添加的那一刻就被执行了,指令都执行完了,你删不删除只是影响下一次是不是还需要执行指令,并不影响根据指令加载出来的内容的哦
就好比,我给你发消息让你帮我拿一件东西,然后你把东西给我拿过来了,这时候我把我发给你的消息删除了,但是这不影响我要的东西已经拿到了啊
全局变量已经注册了script中变量了,要是明确变量名,不如就window.变量名 = null手动去除掉
被变量标记的内容,不会被垃圾回收机制回收
写一个 const a = {};只要还有指向这个对象的指针(这里就是a),那么这个对象就不会被垃圾回收