js全局变量污染问题

js全局变量污染的产生场景

js中全局变量污染的场景,当代码非常长,开发周期长,如果不想办法去解决或者防止全局变量污染的问题,就会造成二次赋值同一个之前定义过的变量。(由于项目开发周期过长你又不记得之前是否定义过这个变量,在赋值之前定义过的变量的时候就污染了全局变量。)

我们解决方案如下↓

1. 使用namespace模式解决全局环境污染。

namespace模式就是把变量装在对象里面,在全局定义一个对象,然后把所有的你想写的全局变量定义在对象内部。你可以随时打印对象查询你是否定义过某个变量。
var obj={
a:“1”,
b:“2}
namespace模式的缺点:就是由于我们把变量装在了一个对象当中,对象内部的东西是可以通过操作对象的方式进行增删改查的,不安全。

2. IIFE模式:(匿名函数自调用【闭包】)方式解决全局污染


```javascript
3.	(function(window){
4.	    let msg="module4";
5.	    function foo(){
6.	        console.log("foo()",msg);
7.	    }
8.	    window.module4=foo; 
9.	    // 我们在window对象上写入一个属性名为module4属性值为foo函数
10.	})
我们调用foo函数
写法一window.module4()
写法二module4()因为window可以省略

在这里插入图片描述




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值