文档章节

如何避免JS变量全局污染一

曹梦龙
 曹梦龙
发布于 2015/02/06 11:45
字数 340
阅读 63
收藏 0

在早期学习工作中,经常在JS文件中写入各种全局变量,小项目问题倒是不大。但是对于中型项目,全局有各种变量,方法时。js代码将会令人书写头疼混乱,所以我用了一个小技巧来解决JS变量的全局污染。

//全局污染的定义 Util.js
function Test1(){
    //代码块
}

function Test2(){
    //代码块
}

如上,在任意JS文件中都可以直接调用  Test1(),Test2() 方法。这种定义方式显然会污染整个环境。

所以我使用如下的方法来编写。

//Global.js
var Global={};
//Util.js

(function($){
    $.Util={};
    $.Util.Test1=function(){
     //代码块
    }
    $.Util.Test2=function(){
     //代码块
    }
})(Global)

采用以上的方法,定义了Global 全局变量,然后给这个变量赋值扩展它的各种功能。

这种方法使用的时候 如下

Global.Util.Test1();
Global.Util.Test2();

通过这种方式,代码变的会清晰,也不会污染全局了。是一个很好用的小技巧哦~

© 著作权归作者所有

曹梦龙
粉丝 14
博文 27
码字总数 12015
作品 0
扬州
高级程序员
私信 提问
好程序员技术分享浅谈JavaScript中的闭包

好程序员技术分享浅谈JavaScript中的闭包,js闭包是指有权访问另一个函数作用域中的变量的函数,个人认为js闭包最大的用处就是防止对全局作用域的污染。 试想如果我们把一些仅仅只用到一两次的...

好程序员IT
04/04
0
0
看JavaScript 一书中记的一些关键点

JS在执行时才确定值(变量在初始化) JS引擎在解析时会预编译对所有变量和函数预先处理,所以执行时变量与函数都可见 先声明,再引用,在JS最上面先声明好变量OR函数,下面再使用 所有的JS块都属于...

在山的那边
2018/07/28
0
0
CSS-in-JS,向Web组件化再迈一大步

简介 CSS-in-JS是什么,看到这个词就能大概猜到是在JavaScript里写CSS,那为什么要在JavaScript里写CSS呢,像之前一样写在css文件里哪里不好么? 在介绍这个概念之前,先来回顾一下在日常编写...

ThoughtWorks中国
2018/04/04
0
0
【JS系列】盘点那些惹是生非的语法

前言   很多朋友在学习之初都感受到了JS的灵活强大,但是也发现了一些蹩脚的语法,在使用时我们如履薄冰   之前我的想法是把它们牢记,以便使用时知道如何避坑,并且它们还可能会在面试中...

一灯
04/24
0
0
JavaScript 最佳实践:帮你提升代码质量

每天学一些新东西可以让一个理性之人走上不凡之路。而作为开发人员,不断的学习新东西则是我们工作的一部分, 不论这些新东西是不是来源于积极的学习经验。 在本篇教程中,我将指出一些重要的...

oschina
2016/11/29
901
0

没有更多内容

加载失败,请刷新页面

加载更多

面试爱奇艺,竟然挂在第5轮……

今天给大家分享我曾经在爱奇艺的面试,过程还是比较有意思的,可以给大家一些参考 <br> 聊骚阶段 嗲妹妹:你好,我是爱奇艺的HR,我们正在招聘运维开发岗位,请问您最近有在看工作机会吗? ...

上海小胖
40分钟前
2
0
Jenkins系列_插件安装及报错处理

进入Jenkins之后我们可以进行插件的安装,插件管理位于以下模块: 发现上面报了一堆错误,是因为插件的依赖没有安装好,那么这一节,就先把这些错误解决掉吧。解决完成后,也就基本会使用插件...

shzwork
今天
2
0
mysql mysql的所有查询语句和聚合函数(整理一下,忘记了可以随时看看)

查询所有字段 select * from 表名; 查询自定字段 select 字段名 from 表名; 查询指定数据 select * from 表名 where 条件; 带关键字IN的查询 select * from 表名 where 条件 [not] in(元素...

edison_kwok
昨天
9
0
解决多线程并行加载缓存问题(利用guava实现)

依赖 com.google.guava:guava:20.0 import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import java.util.concurrent.ExecutionException;import j......

暗中观察
昨天
4
0
利用VisualVM 内存查看

准备工作,建几个测试类。等下就是要查看这几个类里面的属性 package visualvm;public class MultiObject { private String str; private int i; MultiObject(String str...

冷基
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部