关于javascript:闭包的理解

MDN 对闭包的定义是:闭包是指那些可能拜访自在变量的函数,自在变量是指在函数 中应用的,但既不是函数参数又不是函数的局部变量的变量,由此能够看出,闭包=函 数+函数可能拜访的自在变量,所以从技术的角度讲,所有 JS 函数都是闭包,
然而这是 实践上的闭包,还有一个实际角度上的闭包,从实际角度上来说,
只有满足以下两点,才称为闭包.
1、即便创 建它的上下文曾经销毁,它依然存在,
2、在代码中引入了自在变量,

闭包的利用:
1、模拟块级作用域。
2、保留内部函数的变量。
3、封装公有变量 单例模式:

var Singleton = (function(){ var instance;
 var CreateSingleton = function (name) { this.name = name; 
 if(instance) { return instance; }// 打印实例名字 this.getName();
  // instance = this;
  // return instance; return instance = this; }// 获取实例的名字 CreateSingleton.prototype.getName = function() { console.log(this.name) }return CreateSingleton; })(); // 创立实例对象 
  1 var a = new Singleton('a'); // 创立实例对象 
  2 var b = new Singleton('b'); 
  console.log(a===b);

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理