美文网首页
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全局变量被污染的案例

    框架用的uni-app,语法是vue.js的写法。项目种两个相互跳转的页面用了公用的一个组件filter。filt...

  • 值得一看的文章--面试可能用得到

    js系列 js面试题 : 本文全面考察了: 变量名提升、this作用域链、运算符优先级、全局变量名污染已经对象属性...

  • 小程序全局变量

    在app.js里面定义全局变量 在要用到全局变量的某个js文件中

  • webpack 、vue3配置全局变量

    vue.config.js里设置全局变量: 此时CLIENT就在编译期间被设置为全局变量了。其他的页面可以直接使用...

  • VUE 全局变量的几种实现方式

    最近在学习VUE.js 中间涉及到JS全局变量,与其说是VUE的全局变量,不如说是模块化JS开发的全局变量。 1、...

  • 微信小程序全局常量,全局js文件使用

    方法一:app.js 内设置全局变量(如屏宽,屏高的设置) 1、app.js文件 定义全局变量 设置全局变量 a...

  • 第二节:var、let、const之间的区别

    var:全局声明,会改变全局变量的值,进而污染全局变量 let:局部声明,不会改变全局变量的值 const:常量,...

  • [JavaScript] 前端模块编程实现

    前端模块化 前端早期写代码都是全局变量满天飞,这种情况会造成全局命名空间污染,变量冲突等问题 后来采用了 js 的...

  • uniapp实现全局变量

    1.引入外部js文件引入全局常量-组件引用全局变量 2.main.js入口文件挂载全局变量-this引用全局变量m...

  • 闭包

    一、存在的意义 创建一个常驻内存的局部变量和方法(js语言机制会销毁运行过的局部变量),并避免全局变量的污染。 二...

网友评论

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

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