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

拓展如何在网上推广北京网站优化找商集客吗

拓展如何在网上推广,北京网站优化找商集客吗,什么网站可以做卡首屏淘口令,网站top排行榜闭包的概念已经出来很长时间了#xff0c;网上资源一大把#xff0c;本着拿来主意的方法来看看。 这一篇文章 学习Javascript闭包#xff08;Closure#xff09; 是大神阮一峰的博文#xff0c;作者循序渐进#xff0c;讲的很透彻。下面一一剖析。 1.变量的作用域 变量的…闭包的概念已经出来很长时间了网上资源一大把本着拿来主意的方法来看看。 这一篇文章 学习Javascript闭包Closure 是大神阮一峰的博文作者循序渐进讲的很透彻。下面一一剖析。 1.变量的作用域 变量的作用域有局部和全局两种在javascript的函数内部可以访问全局变量如下 // 函数内部可以直接读取全局变量var n 99;function f1() {alert(n);}f1(); 在f1函数中可以访问到全局变量n。输出如下 反过来就不行了在函数外部不能读取函数内部的变量例如这样 //函数外部无法读取函数内部的局部变量这里会报错function f2() {var m 99;}alert(m) //报错 javascript还有一个比较特殊的地方在函数内部如果没有使用varconstlet修饰符声明变量那么这个变量不再是局部变量而是一个全局变量如下 function f2() {m 99;}f2();alert(m) 输出99 是不是很神奇但是这个经常给人造成困惑。   2.如何从外部读取函数内部的局部变量 很多场合下要访问函数内部的局部变量变通的方式是在函数内部定义函数如下 function f3() {var a 999;function f4() {alert(a);}return f4}var result f3();result(); 函数f4包含在函数f3里面所以f4范围内可以访问到f3中的那个变量a反过来是不行的Javascript语言特有的链式作用域结构chain scope子对象会一级一级地向上寻找所有父对象的变量。所以父对象的所有变量对子对象都是可见的反之则不成立。   3.闭包的概念 可以简单理解成定义在函数内部的函数这个内部函数可以把内部函数作用域内的变量传播到外面。由于在javascript中只有内部的子函数才能读取局部变量因此可以把闭包简单的理解成“定义在一个函数内部的函数”。本质上闭包就是将函数内部和函数外部连接起来的桥梁。   4.闭包的作用 闭包的第一个用处就是读取函数内部的变量另一个作用就是让这些变量始终保存在内存中。来看下面的代码 function f5() {var b 111;nAdd function () {b 1;}function f6() {alert(b);}return f6}var result1 f5();result1();nAdd();result1(); 上面代码两次弹出框第一次是输出111第二次是112这就证明函数函数f5内的局部变量b一直保存在内存中并没有在f5调用后被自动清除。 这就说明第一次调用result1();的时候给变量b赋值了然后调用全局函数nAdd的时候变量b仍然还在内存中给他加1就变成112了。原因就在于f5是f6的父函数而f6被赋给了一个全局变量这导致f6始终在内存中而f6的存在依赖于f5因此f5也始终在内存中不会在调用结束后被垃圾回收机制garbage collection回收。 这段代码中另一个值得注意的地方就是nAddfunction(){n1}这一行首先在nAdd前面没有使用var关键字因此nAdd是一个全局变量而不是局部变量。其次nAdd的值是一个匿名函数anonymous function而这个匿名函数本身也是一个闭包所以nAdd相当于是一个setter可以在函数外部对函数内部的局部变量进行操作。 5.注意  1由于闭包会使得函数中的变量都被保存在内存中内存消耗很大所以不能滥用闭包否则会造成网页的性能问题在IE中可能导致内存泄露。解决方法是在退出函数之前将不使用的局部变量全部删除。其实一般不会这样用2闭包会在父函数外部改变父函数内部变量的值。所以如果你把父函数当作对象object使用把闭包当作它的公用方法Public Method把内部变量当作它的私有属性private value这时一定要小心不要随便改变父函数内部变量的值。其实一般不会这样用 最后作者给出了思考题目如下 var name The Window;var object {name: My Object,getNameFunc: function () {// 这里的this是函数console.info(this)return function () {//匿名函数的执行环境是windowsconsole.info(this)return this.name;}}};alert(object.getNameFunc()()); 其实从变量的值已经看到答案了在对象object内部的函数getNameFunc里面返回了一个匿名函数这个匿名函数的作用域是window所以这里输出的是The Window如下 我在日志里面加上的调试语句可以看出端倪 看下面的代码 var name1 The Window;var object1 {name1: My Object1,getNameFunc:function () {var that this;return function () {return that.name1}}}alert(object1.getNameFunc()()); 这里在函数内部使用var that this语句先把当前上下文的对象保存下来在匿名函数中使用that.name1这样就是当前对象中的name1于是输出了“MyObject1”。其实可以用es6中的箭头函数如下 var name1 The Window;var object1 {name1: My Object1,getNameFunc:function () {return () {return this.name1}}}alert(object1.getNameFunc()()); 箭头函数会绑定object1的作用域于是仍任是object1的属性name1和上面输出的结果一样。 6.深入的理解  在知乎上也有人在讨论这个问题知乎你懂的比较严谨如何通俗易懂的解释javascript里面的‘闭包’这一篇问答里有人给出了其他的解释。  1.每次定义一个函数都会产生一个作用域链scope chain。当JavaScript寻找变量varible时这个过程称为变量解析总会优先在当前作用域链的第一个对象中查找属性varible 如果找到则直接使用这个属性否则继续查找下一个对象的是否存在这个属性这个过程会持续直至找到这个属性或者最终未找到引发错误为止。------有道理关键是弄懂这个作用域链说白了就是花括号的层级及各种函数的的上下文作用域比如在函数中定义变量不用varlet它居然是全局的这个是javascript比较特殊的地方强类型语言估计早就报错了。 2.JavaScript中的函数运行在它们被定义的作用域里而不是它们被执行的作用域里。------有道理上面的最后一个代码段中的例子本来执行object1.getNameFunc()()这一句的时候执行作用域中的name1是var name1 The Window;这个但是弹出来的确实定义getNameFunc这个函数的作用域内的name1: My Object1, 3.子函数能够访问父函数的局部变量反之则不行。而那个子函数就是闭包------有道理就是上面阮大师反复说明的 好了就这么多了。  转载于:https://www.cnblogs.com/tylerdonet/p/6561334.html
http://www.zqtcl.cn/news/227888/

相关文章:

  • 网站建设与运营答案新浪网站首页
  • 网站怎么做关键词库如何建免费的企业网站
  • 跟老外做网站网络系统管理与维护机考
  • 网站推广方案范例江西南昌小程序开发
  • 烘焙类网站开发时代背景ppt素材模板免费下载
  • 如何制作多网页网站广州品牌seo推广
  • 域名怎么解析到网站什么是asp网站
  • 网站开发的税率做网站文案
  • 网站模板上传工具如何介绍自己设计的网页
  • 河北网站建设价格低国内做外单的网站有哪些
  • wordpress Apache升级优化营商环境的意义
  • 单页式网站系统wordpress自定义字段怎么用
  • 南宁网站设计要多少钱修改wordpress中的 功能 小工具
  • 南昌高端网站开发费用表域名价格排行
  • 怎么接网站开发外包中国观鸟记录的网站架构
  • 青海省住房和城乡建设厅的官方网站网站举报能不能查到举报人
  • dw做的网站如何上传云服务器网址生成app一键生成器
  • 山西建设厅网站密钥房山营销型网站建设
  • 网站空间多少钱哪里接单做网站
  • 建设部网站资质人员查询页面设计的对称方法包括哪几种形式
  • 滁州网站建设哪个好点iis发布网站无法访问
  • 网站项目建设的定义百度站长平台清退
  • ip开源网站FPGA可以做点什么建设网站的工作职责
  • 重庆微信网站开发公司建设网站技术标准
  • 网站开发浏览器银川市建设诚信平台网站
  • 找合伙人做红木家具网站建设银行员工学习网站
  • iis的默认网站没有自动启动长春小程序开发制作
  • 佛山住房和城乡建设部网站wordpress 英文主题
  • 零食网站策划书厦门建设网站的公司
  • 自己做的网站怎么发布到网上湖南做网站 干净磐石网络