美文网首页
关于闭包理解

关于闭包理解

作者: 我家有个王胖胖 | 来源:发表于2021-07-25 18:26 被阅读0次

https://zhuanlan.zhihu.com/p/22486908

https://zhuanlan.zhihu.com/p/106287246

1.函数可以访问函数内部定义的变量,也可以访问函数外部定义的变量

//内部
function add(){
  var counter = 0;
  conuter++;
  return counter;
}
//外部
var counter = 0;
function add(){
  counter++;
  return counter;
}

2.函数内部的变量只能在函数内部访问

function add(){
  var counter = 0;
  conuter++;
  return counter;
}
console.log(counter);//undefined

注:counter 是一个 全局 变量。

在web页面中全局变量属于 window 对象。

全局变量可应用于页面上的所有脚本。

在第一个实例中,counter 是一个 局部 变量。

局部变量只能用于定义它函数内部。对于其他的函数或脚本代码是不可用的。

全局和局部变量即便名称相同,它们也是两个不同的变量。修改其中一个,不会影响另一个的值。

注意:变量声明时如果不使用 var 关键字,那么它就是一个全局变量,即便它在函数内定义。

2.变量的生命周期

全局变量的作用域是全局性的,即在整个JavaScript程序中,全局变量处处都在。

而在函数内部声明的变量,只在函数内部起作用。这些变量是局部变量,作用域是局部性的;函数的参数也是局部性的,只在函数内部起作用。

3示例,计数器困境

设想下如果你想统计一些数值,且该计数器在所有函数中都是可用的。

你可以使用全局变量,函数设置计数器递增:

var counter = 0;
function add(){
  counter += 1;
console.log(counter);
  return counter;
}
add();//1
add();//2
add();//3

相关文章

  • Swift5 闭包及其应用

    关于如何理解闭包 学习闭包的第一个难点就是理解闭包,可能很多人用了很久的闭包都还不太清楚闭包到底是什么,我这里提供...

  • JavaScript - 闭包

    理解 关于闭包 答案: 用arguments.callee和闭包实现的函数封装 应用 利用闭包实现自动递增计数

  • 关于闭包理解

    https://zhuanlan.zhihu.com/p/22486908[https://zhuanlan.zh...

  • 关于闭包的理解

    1.对于闭包,个人理解: 有权访问另一个函数作用域中的变量的函数 示例: 闭包是一种特殊的对象。它由两部分构成:函...

  • 关于闭包的理解

    什么是闭包?闭包是有权限访问其它函数作用域内的变量的一个函数。 在js中,变量分为全局变量和局部变量,局部变量的作...

  • 关于闭包的理解

    参考文章 https://www.cnblogs.com/cxying93/p/6103375.html内容相似,...

  • Gradle开发-Groovy闭包

    # 闭包 闭包的基础知识 闭包的使用 闭包 this,owner,delegate 的理解 总结 ## 闭包的基础...

  • 一分钟理解js闭包

    一分钟理解js闭包,关于js闭包的内容介绍了很多,本文带着大家快速理解什么是js闭包,感兴趣的小伙伴们可以参考一下...

  • 一分钟带你弄懂闭包

    一分钟理解js闭包,关于js闭包的内容介绍了很多,本文带着大家快速理解什么是js闭包,感兴趣的小伙伴们可以参考一下...

  • 什么是闭包?几分钟告诉你

    一分钟理解js闭包,关于js闭包的内容介绍了很多,本文带着大家快速理解什么是js闭包,感兴趣的小伙伴们可以参考一下...

网友评论

      本文标题:关于闭包理解

      本文链接:https://www.haomeiwen.com/subject/djnzultx.html