当前位置: 首页 > news >正文

威海专业做网站公司黑龙江新闻头条最新消息

威海专业做网站公司,黑龙江新闻头条最新消息,推广qq群的网站,网站设计师介绍为什么要产生闭包的概念,通俗来说一下。 公司有一个项目,分为两个部分,张三、李四各分配一个部分。 张三.js代码: var key我要吃肉 function fn(){console.log(key); } 李四.js代码: var key我要喝酒 function fn…

为什么要产生闭包的概念,通俗来说一下。

公司有一个项目,分为两个部分,张三、李四各分配一个部分。

张三.js代码:

var key='我要吃肉'
function fn(){console.log(key);
}

李四.js代码:

var key='我要喝酒'
function fn(){console.log(key);
}

如果在张三.js或者李四.js代码中分别运行,都没有问题。不过,这是一个网页项目的两部分,需要综合到一起去执行,此时就出现了问题。

我的本意是张三的执行,李四的也执行。实际情况:

只执行了李四的fn,如图。

如果js代码中不用var定义变量,而是用let定义变量,就会更明确的显示出问题。

那就是在 first_js.html这个总项目中,张三和李四的变量、函数名等重复定义了。

闭包就是为了解决这个问题。

那么,如何解决呢?

这就是需要“作用域”这个概念。也就是,在函数内部定义的变量,只在这个函数内有效。

对了,程序员很机智,给张三.js和李四.js的代码,分别用一个函数包含起来,它们不就分别有自己的独立空间了吗?对,这就是闭包。闭:就是封闭的环境(函数内)存放局部变量和方法。包:就是在这个环境中,实现想要的功能。

代码就变成了这样:

再多想一步,既然这个所谓的外部函数的作用只是给出一个独立的空间,它们的名字是不是就略显多余呢?

这时,就自然想到了自运行函数。

这里还有个问题,张三和李四虽然有了自己的空间,那么它们想要实现的功能(函数),怎么让总项目所使用呢?

好办,那就分别导出其功能函数就行了。 【注意:此时返回的变量是一个函数】

这样,在总项目中,分别运行zs()和ls()就可以了。

进一步思考,如何张三.js和李四.js需要实现多个功能,该如何导出呢?

将导出函数变为导出对象(对象中有多个功能函数)就行了。【注意:此时返回的变量是一个对象】

在总项目中,依次调用:

结果正确。

至此,就解决了各个分项目中存在同变量名冲突的问题。

张三和李四再也不用为自己代码中的变量名称冲突而烦恼了。

这就是闭包的来源和作用。 

小知识:自运行函数的格式(张三.js为自运行函数,李四.js为普通函数的运行)

http://www.tj-hxxt.cn/news/62863.html

相关文章:

  • 网站建设学习步骤关键词排名点击软件
  • wordpress 年份索引免费的seo优化工具
  • 做业务员找数据的网站沈阳关键字优化公司
  • 武汉疫情管理中山seo
  • 龙岗微网站建设seo营销
  • B2C网站开发功能表搜索风云榜百度
  • 用个人电脑做服务器建网站google官网进入
  • 网站一个人可以做吗抖音怎么推广引流
  • 网站建设群上海seo推广整站
  • 网站开发预算报价表网站seo推广方案
  • 建站吧网站建设泉州百度竞价推广
  • 萍乡做网站长春网站建设定制
  • 网站建设功能模块百度爱采购推广效果怎么样?
  • 如何做网站seo优化市场调研方法有哪些
  • wordpress 后台样式修改seo联盟
  • 做音乐 交流网站西seo优化排名
  • 临沂百度网站推广网站制作工具有哪些
  • 做淘宝美工客服兼职的网站如何分步骤开展seo工作
  • 志迅东莞网站建设长沙网站优化价格
  • No餐饮网站建设抖音营销推广怎么做
  • 可以做视频片头的网站站内关键词自然排名优化
  • 网页设计基础实训原理新站优化案例
  • dw网页素材关键词排名快照优化
  • 郑州做网站优化价格重庆seo怎么样
  • 自己做的视频发什么网站吗搜索引擎优化工具有哪些
  • 怎么在qq上自己做网站平台推广是做什么的
  • 分析竞争对手网站google框架一键安装
  • 地方网站运营方案济南seo优化公司助力网站腾飞
  • 做网站需要服务器查询吗关键词搜索引擎
  • 杭州认证网站建设广西壮族自治区免费百度推广