美文网首页
JS全局变量被污染的案例

JS全局变量被污染的案例

作者: 前端里程 | 来源:发表于2019-07-25 16:35 被阅读0次

    框架用的uni-app,语法是vue.js的写法。项目种两个相互跳转的页面用了公用的一个组件filter。filter组件都声明了一个 let _this = null;的变量。
    1、第一个页面的fitler组件如图:


    image.png

    2、第二个页面的filter组件如下图:


    image.png

    组件代码在全局里面声明了let _this = null;created声明周期里面保存当前组件的this,这里就是当第二个页面再次加载filter组件时,全局变量_this 保存就是第二个组件的 this数据了,你按返回键回退到第一个页面是_this 保存的数据已经不是第一个页面的filter组件数据,而是第二页面的filter组件数据。这时你再操作第一个页面的filter组件的_this 就不在是你想要的了。这就是全局变量被污染了。

    <script>
        let _this = null;
        export default {
             data() {
                return {
    
    created() {
        _this = this;
    }
    

    相关文章

      网友评论

          本文标题:JS全局变量被污染的案例

          本文链接:https://www.haomeiwen.com/subject/xbvhrctx.html