栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么是js的闭包?有什么作用,用闭包写个单例模式

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么是js的闭包?有什么作用,用闭包写个单例模式

参考回答:

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

闭包的应用:

模仿块级作用域。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);

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/365352.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号