一.变量污染 JS内的全局变量、函数被覆盖 二. Node.js规范 Node应用由模块组成,采用CommonJS模块规范 三.CommonJS规范 1. 每个文件 就是一个模块,有自己的作用域,在这个文件中定义的都是私有的,其他文件不可见 2. 使用require方法可以加载其他模块 3. 每个模 ...
分类:
其他好文 时间:
2018-06-30 17:39:43
阅读次数:
117
前序 在程序代码中出现的简单的模块要数函数了 函数的特点: 1、代码重复利用 2、便于修改和维护 3、控制执行时机 缺点:污染全局变量,模块成员之间没什么关系 例如:闭包模块化案例 利用面向对象思想,并使用立即执行函数,实现闭包,避免了变量污染,同时同一模块内的成员变量也没有了关系,在模块外部无法修 ...
分类:
其他好文 时间:
2018-05-16 19:39:24
阅读次数:
167
前段时间封装了一个函数,当时考虑的没那么多,最近回头看这个封装的函数时发现其实造成了全局污染。原先的函数是这样的:functioninterval(fn,ms){!this.fn?(this.fn=fn,this.ms=ms,this.step=0):nullthis.step++this.step%(this.ms*60)==0?this.fn():nullrequestAnimationFra
分类:
编程语言 时间:
2018-04-09 11:46:39
阅读次数:
201
一、jQuery($)命名空间 为了避免声明了一些全局变量造成变量污染,使用立即执行函数形成jQuery($)独立的命名空间; 二、jQuery的本质是什么? 由jQuery的源码可知,jQuery的本质是一个函数(对象),是函数就应该有原型(prototype对象),但是,jQuery重置了该原型 ...
分类:
Web程序 时间:
2018-04-01 14:28:11
阅读次数:
250
1. 谈一谈闭包,闭包里的this指向谁?为什么使用它?什么时候闭包中的参数会销毁、什么时候不会? 闭包是可以访问自身所在作用域的函数能在自身所在作用域之外调用; this指向window; 闭包的优点:扩展变量或函数的作用域,使外部可以访问内部; 避免了变量污染(变量名冲突); 合理使用可以节约内 ...
分类:
编程语言 时间:
2018-03-22 22:36:42
阅读次数:
529
什么是闭包? 简单来说,闭包是指可以访问另一个函数作用域变量的函数,一般是定义在外层函数中的内层函数。 (父函数包裹子函数,这个子函数中存在能够访问父函数中变量的引用,这个子函数就是闭包) 为什么需要闭包? 局部变量无法共享和长久的保存,而全局变量可能造成变量污染,所以我们希望有一种机制既可以长久的 ...
分类:
其他好文 时间:
2018-03-15 11:08:33
阅读次数:
140
看过jQuery源码的人应该知道,jQuery开篇用的就是立即执行函数。立即执行函数常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),开发者们想到的解决办法就是使用立即执行函数。 1.什么是立即执行函数(IIFE) 在了解立即执行函数之前先明 ...
分类:
编程语言 时间:
2018-02-05 20:01:04
阅读次数:
155
封装:使用对象封装的好处是可以减少全局变量污染的机会,讲属性,函数都隶属一个对象。 封装前: 运行结果: 封装后: 运行结果: ...
分类:
编程语言 时间:
2017-12-05 20:15:51
阅读次数:
198
本文来论述JavaScript中变量声明有var和没var的区别,关于Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是 (function(){ ... })(); 在函数内部,有var和没var声明的变量是不一样的。有var声明的是局部变量,没var的,声明的全局变 ...
分类:
编程语言 时间:
2017-11-27 01:18:28
阅读次数:
268
1. 块级作用域 我们一般在写插件的时候,将代码封装在一个立即执行函数里,一般只将一个对象赋给全局供外部使用,这样就避免了插件内部变量污染全局变量。 在多人协作开发的项目中要尽可能少的使用全局变量和函数,否则很可能导致命名冲突。而将各自的代码封装在各自的作用域中,则互不干扰。 在全局作用域中使用块级 ...
分类:
编程语言 时间:
2017-09-19 00:12:32
阅读次数:
111