最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript中闭包的含义是什么以及如何使用它

来源:懂视网 责编:小采 时间:2020-11-27 19:29:00
文档

JavaScript中闭包的含义是什么以及如何使用它

JavaScript中闭包的含义是什么以及如何使用它:本文章将分享有关JavaScript中闭包的知识点,有一定的参考价值,希望对大家有所帮助闭包是函数和声明该函数的词法环境的组合,当内部函数被保存到外部时,将会生成闭包而闭包会导致原有作用域链不释放,造成内存泄露,但同时闭包也是非常有用的,因为它可以将
推荐度:
导读JavaScript中闭包的含义是什么以及如何使用它:本文章将分享有关JavaScript中闭包的知识点,有一定的参考价值,希望对大家有所帮助闭包是函数和声明该函数的词法环境的组合,当内部函数被保存到外部时,将会生成闭包而闭包会导致原有作用域链不释放,造成内存泄露,但同时闭包也是非常有用的,因为它可以将
本文章将分享有关JavaScript中闭包的知识点,有一定的参考价值,希望对大家有所帮助

闭包是函数和声明该函数的词法环境的组合,当内部函数被保存到外部时,将会生成闭包而闭包会导致原有作用域链不释放,造成内存泄露,但同时闭包也是非常有用的,因为它可以将某些数据与对该数据的操作进行关联。

例:

function demo() {
 var name = '张三'; // name 是demo()创建的局部变量
 function demo1() { //demo1()是demo()中的内部函数(闭包)
 console.log(name); // 使用父函数中声明的变量 
 }
 demo1(); 
 }demo();

运行结果

Image 1.jpg

函数demo()中创建一个名为name的局部变量和一个名为demo1()的内部函数。 demo1()函数只能在demo()函数体内使用。 demo1没有自己的局部变量。但是由于内部函数可以访问外部函数的变量,所以demo1()可以访问父函数demo()中声明的变量名name。但是如果有同名变量 name 在demo1中被定义,则会使用 自己函数中定义的 name。该例子说明嵌套函数可以访问在其外部作用域中声明的变量。

如果上面的代码改成这样结果会如何?

function demo() {
 var name = '张三';
 function demo1() {
 console.log(name);
 }
 return demo1;
 }
 var newDemo = demo();
 newDemo();

运行结果

Image 1.jpg

由运行结果可知两段代码结果一样,内部函数demo1()在执行之前被外部函数返回形成闭包,在这种情况下,newDemo()是运行demo时所创建的函数demo1的一个引用,所以当调用newDemo()时,变量名name仍可以传递给console.log(name)。

示例

function num(x) {
 return function(y) {
 return x + y;
 };}
 var num1= num(2);
 var num2 = num(3);
 console.log(num1(2));// 4
 console.log(num2(2));// 5

运行结果

Image 2.jpg

定义一个函数num(x)用于接收一个参数x并返回一个新函数,这个新函数还接收一个参数y并返回x和y之和;同时又定义了两个新的值num1,num2都为闭包且传值分别为2,3.

总结:

文档

JavaScript中闭包的含义是什么以及如何使用它

JavaScript中闭包的含义是什么以及如何使用它:本文章将分享有关JavaScript中闭包的知识点,有一定的参考价值,希望对大家有所帮助闭包是函数和声明该函数的词法环境的组合,当内部函数被保存到外部时,将会生成闭包而闭包会导致原有作用域链不释放,造成内存泄露,但同时闭包也是非常有用的,因为它可以将
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top