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

网站推广app专业做网站登录

网站推广app,专业做网站登录,wordpress 黄聪ajax,跨境分销平台有哪些闭包#xff0c;在一开始接触JavaScript的时候就听说过。首先明确一点#xff0c;它理解起来确实不复杂#xff0c;而且它也非常好用。那我们去理解闭包之前#xff0c;要有什么基础呢#xff1f;我个人认为最重要的便是作用域#xff08;lexical scope#xff09;…      闭包在一开始接触JavaScript的时候就听说过。首先明确一点它理解起来确实不复杂而且它也非常好用。那我们去理解闭包之前要有什么基础呢我个人认为最重要的便是作用域lexical scope如果对作用域和作用域链不理解的同学最好自己先去学一学再回过头来理解闭包就更加轻松。   下面便直接进入主题。   我们知道一个函数是有作用域的在函数内部定义的局部变量只有在函数内部才可以访问的到。一旦函数访问结束被销毁局部变量随之也会销毁无法通过任何方式再次访问局部变量除了闭包。也就是说我们可以通过闭包这一个方法从函数的外部去访问到函数内部的变量即使那个函数已经被销毁。没错闭包最重要的用法就是我们只提供某些接口去访问和修改局部变量而外部是不能直接访问到局部变量的。   说了那么多有关如何使用闭包我们来看看闭包是长什么样子的。又到了举个栗子的环节依然是最简单的people和name。 var people function(){var name Yika;var sayName function(){return name; //访问了people函数的局部变量name}var setName function(newName){name newName; //访问了people函数的局部变量name}return{sayName: sayName,setName: setName}//返回一个对象}var p1 people(); //函数return的是一个对象这个对象里有两个函数sayName和setNameconsole.log(p1.name); //undefined. name是people函数里的局部变量而不是p1对象的属性当然为undefinedconsole.log(p1.sayName());//Yikap1.setName(Ruyi); //通过setName函数修改局部变量name的值console.log(p1.sayName());//Ruyi   看完这个例子想必对闭包多少有个了解啦除了注释的内容下面再做些补充。   问为什么局部变量name属性在people执行完之后没有被销毁呢反而数值还保存在内存中。   答 在例子中函数注释那里专门写了访问了people函数的局部变量name。正是因为people函数里的sayName函数和setName函数访问了name属性并且通过return传到了p1对象里成了p1的两个方法。因为方法一直引用着people函数的局部变量所以不会被消除依然会在内存中。这样便形成了闭包可以在函数外部访问到函数内部的局部变量。   对此我们可以换个更直观的写法。 var people function(){var name Yika;var obj {sayName: function(){return name;},setName: function(newName){name newName}};return obj; //直观的返回对象} //下面的结果是一样的。   当然闭包也不是一直那么好用特别是在循环里。继续举例子 bodyinput typebutton/input typebutton/input typebutton/input typebutton/input typebutton/input typebutton/input typebutton/script typetext/javascriptvar oBtn document.getElementsByTagName(input);for(var i 0, len oBtn.length; i len; i){oBtn[i].onclick function(){alert(value i); //闭包陷阱的发生地永远输出 value 7}}/script /body   当我们运行上面的代码的时候我们是这样想的循环一下按钮并输出按钮所在的序号但是我们得到的却永远是7。其实用我们之前讲的闭包会让变量的值一直保存在内存中的原理想一想就应该懂了。当我们循环的时候按钮的点击事件时是引用了for循环里的 i 变量。当所有按钮都绑定了点击事件后i 的值也已经变成了7当然所有的按钮输出的都是7啦怎么解决这个问题也很好办的但是我希望留下给大家思考。这里就说一下大致思路吧我们可以在循环之外创建一个辅助函数并让辅助函数return一个绑定当前 i 的函数。   当然这里我也只是抛砖引玉的介绍了一下闭包希望可以帮到大家浅显简单的了解闭包。   还是那句话噢有问题立即指正我一定会立马检查更正以免误导了大家转载于:https://www.cnblogs.com/YikaJ/p/4040631.html
http://www.yutouwan.com/news/347086/

相关文章:

  • 网站建设怎么做外国网站
  • 网站怎么找个人网站 免费
  • 免费的黄冈网站代码网站建设建站
  • 锦州网站设计骏域网站建设专家电话
  • 网站建设登录平板怎么做网页
  • 网站开发 会费管理 模块网站是怎么做新手引导
  • 为什么自己做的网站老是404错误做网站有必要要源码吗
  • 国内做网站建设知名的公司互联网产品运营是做什么的
  • 咸宁公司做网站网站外链平台
  • 设计网站推荐提升审美wordpress房产中介模板
  • 单位网站查询工资链接怎么做wordpress域名绑定
  • 免费搭建自助网站公司 网站建设
  • 做简单网站的框架图培训心得体会100字
  • 惠州html5网站建设新农村网站建设
  • 沈阳网站建设策划初学seo网站推广需要怎么做
  • 2015年做啥网站致富ps自学网官方网站
  • 番禺网站建设效果企业263邮箱登录入口
  • 宁波网站建设小程序开发珠海品牌网站设计
  • 网站视频提取软件app网络培训的心得体会
  • 宿迁网站建设方案痘痘该如何去除效果好
  • 网站建设平台官网要点有哪些关于旅游网站建设的方案
  • 事业单位网站建设方案策划书网站建设业务员话术
  • 长春网站搭建vue可视化开发工具
  • 商务网站规划与建设课程设计网页源代码怎么打开快捷键
  • 如何自己用wordpress建网站wordpress调用图片上传
  • 东莞品牌型网站建设价格陕西住房和城乡建设厅中心网站
  • 广西建设网站免费的网站如何建设
  • 怎么样网站建设漳州最便宜的网站建设价格
  • 网站开发内容和方法外贸网站建设官网
  • 中国建设银行曲江支行网站企业网站cms 开源