闭包及作用域

一、作用域

(1)作用域:执行上下文。每个函数都有自己的执行上下文和活动对象。这些环境用于储存上下文中的变量、函数声明、参数等。只有函数才能制造作用域。

(2)this:是一个指向函数执行环境的指针。this永远指向最后调用它的对象,并在执行时才能获取值,定义是无法确认它的值。

注:call() 、apply()、bind():可以改变 this 的指向。第一个参数是this的指向对象,如 call 和 apply 第一个参数指向 null 或 undefined 时,那么 this 就会指向 windows 对象。区别:call 和 apply 立即执行 , bind 可以让函数任何时候调用。如:

1 obj.fun.call(a,'b','a');
2 obj.fun.call(a,['a','b']; 
3 obj.fun.call(a,'a','b')();

二、闭包

(1)概念:能够读取其他函数的内部变量的函数。在JS中只有函数内部的子函数才能读取局部变量,及定义在内部函数的函数。

(2)用途:a、读取内部的变量

      b、让变量始终保留在内存中

 

posted on 2018-09-26 15:42  大黑ylx  阅读(215)  评论(0编辑  收藏  举报