手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JavaScript中消除闭包的一般方法介绍
JavaScript中消除闭包的一般方法介绍
摘要:JavaScript的闭包是一个其主动发展的特性,也是一个被动发展的特性.也就是说,一方面,JS有了闭包能更好解决一些问题.另一方面,JS为...

JavaScript 的闭包是一个其主动发展的特性, 也是一个被动发展的特性. 也就是说, 一方面, JS 有了闭包能更好解决一些问题. 另一方面, JS 为了解决某些问题, 而不得不使用闭包勉强来解决问题.

前者这里不讨论, 如果 JS 闭包能更好的解决问题, 当然使用闭包更好.

我讨论的是后者, 是因为 JS 本身的限制, 而不得不磕磕绊绊地用闭包来解决的问题, 例如"变量只初始化一次"这样的需求.

常规的语言这样解决:

复制代码 代码如下:

class Class{

function init(){

this.n = 0;

}

function func(){

this.n ++;

return this.n;

}

}

var obj = new Class();

JavaScript 一般会这样解决(使用闭包):

复制代码 代码如下:

var obj = {

func : (function(){

var n = 0;

return function(){

n ++;

return n;

}

})()

}

但我更建议采用这种方法(消除闭包):

复制代码 代码如下:

function Class(){

var self = this;

self.n = 0;

self.func = function(){

self.n ++;

return self.n;

}

}

var obj = new Class();

因为后者的可扩展性更好. 当你需要实现对一个变量的不同操作时, 后一种可以只需要再定义一个不同的函数(也就是简单线性扩展), 而前一种(闭包)则需要完全重写(这就是为什么你经常听到重构这个词的原因).

【JavaScript中消除闭包的一般方法介绍】相关文章:

Javascipt中处理字符串之big()方法的使用

简介JavaScript中getUTCMonth()方法的使用

Node.js中JavaScript操作MySQL的常用方法整理

JavaScript实现点击文字切换登录窗口的方法

Javascript中With语句用法实例

javascript中DOM复选框选择用法实例

JavaScript中String.match()方法的使用详解

JavaScript中的italics()方法的使用介绍

Javascript动态创建表格及删除行列的方法

JavaScript中的parse()方法使用简介

精品推荐
分类导航