删除掉script之后依旧生效

动态创建完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),那么这个对象就不会被垃圾回收