javascript 基础概念整理

闭包

如果函数作为返回值,或者作为参数传递,函数里面引用了一个局部变量,那么就创建了一个闭包,等于在外部引用了局部变量,这个局部变量不会被销毁。例如

 1 function foo(){
 2   const i=10;
 3   
 4   return function bar(x){
 5    console.log(x+i)
 6   }
 7 }
 8 
 9 let f1 = foo();
10 f1(2);

作为参数传递

const max = 10,
        fn=function(x){
             console.log(x+max)   
        }

匿名立即执行函数 这里max取10
(function(f){
const max = 20; const i
= 100;f(11) })(fn);

这里取上面的max值,自由变量要在创建他的环境中取值,而不是在父作用域中取值。同样的有: 箭头函数绑定创建它的作用域,this指向执行时,也就是调用他的对象的作用域。

猜你喜欢

转载自www.cnblogs.com/312blues/p/9196885.html