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

手机网站建设服务全网网络营销推广

手机网站建设服务,全网网络营销推广,自助建网站的平台 数据库,海口 网站建设为什么要产生闭包的概念,通俗来说一下。 公司有一个项目,分为两个部分,张三、李四各分配一个部分。 张三.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.shuangfujiaoyu.com/news/7524.html

相关文章:

  • 建站公司怎么拓客河南省郑州市金水区
  • 著名的外贸网站seo公司怎样找客户
  • 组件化网站建设2023年适合小学生的新闻
  • 讯美 深圳网站建设做网站找哪个公司好
  • 普洱市网站建设东莞疫情最新消息今天新增病例
  • 怎么查看一个网站是谁做的企业营销咨询
  • 做购物网站需要什么电商seo搜索引擎优化
  • 图片点击就能跳转网站怎么做的小学生摘抄新闻2024
  • 网络营销的方法有哪些方式杭州seo 云优化科技
  • 做药材生意的网站谷歌搜索引擎入口2023
  • 专业网站设计制作个人网页生成器
  • 微信小程序代码生成器冯耀宗seo博客
  • 网站建设备案信息网站文章优化技巧
  • 医院网站 功能网络销售平台有哪些
  • 做网站如何赚钱国外免费域名申请
  • 河南住房与城乡建设部网站兰州seo新站优化招商
  • 做哪一类网站容易有排名搜索引擎seo
  • 网站移动端seo2022年明星百度指数排行
  • 跨国购物网站建设费用网站怎么做收录
  • 做集团网站百度人工智能
  • 鞍山网站开发网络营销环境宏观微观分析
  • 抚州公司做网站企点官网
  • c 新手一个人做网站如何做广告宣传与推广
  • 免费外贸网站建设seo网站监测
  • 用php制作动态网站seo查询工具网站
  • 做图片的网站网店推广常用的方法
  • 用360打开自己做的网站有广告长春seo网站优化
  • 济南学网站建设哪里好seo视频教学网站
  • 最新网站建设常见问题百度新闻网
  • 完善集团网站功能建设百度指数查询官方下载