5分钟学会javascript闭包(一)

时间:2022-04-27
本文章向大家介绍5分钟学会javascript闭包(一),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

先来定义,能读取其它函数内部变量的函数,它可以将函数内部和外部连接起来。

javascript有二种变量的作用域,

一是全局变量,二是局部变量

根据javascript语言的特性,一个函数可以访问函数外的全局变量,但函数外的其它函数,却无法访问此函数内部的局域变量。

例如:

var abc = 123;
function n1(){
 console.log(abc)
}
n1();
//123

但如果这样写:

function n2(){
 var abc=456;
}
console.log(abc);
//error

但有的时候,就是需要在函数外面,获取函数的内部变量,就这样写:

function n3(){
 var a1 = '123';
 function n4(){
 console.log(a1);
 //123
 }
}

或直接点这样写:

function n5(){
 var a2 = '555';
 return function(){
  console.log(a2)
 }()
}
n5();
//555

上面例子中的n4函数就是闭包。

闭包这二个字本身就难以理解,各种书上对它的解释也是各种看不懂。

我建议还是要理解它,而不是读懂各种书上对它的定义。

SO,

n4函数能读到它的,,,父函数吧,就这个意思,的局域变量,

那这个n4()就是闭包。。

return的匿名自执行函数,能够读到它的父函数n5的局域变量,那这个return r 匿名自执行函数,就是闭包。。

--------------

好啦,闭包讲完了,看看表,5分钟到了吗?

闭包有哪些用处呢?

它的用处可大了,下次再说,,困了,晚安