JS全局变量被污染的案例

2019-07-25  本文已影响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;
}
上一篇 下一篇

猜你喜欢

热点阅读