1.this的指向
(1)在函数中this指向全局global window
(2)在对象中this指向拥有该方法的调用者
(3)在当前模块,this指向当前模块 {}
(4)事件:this指向接收事件的dom元素
2.作用域
(1)局部作用域:在 JavaScript函数中声明的变量,会成为函数的局部变量。
函数内部声明的变量,在函数外部不能访问。
(2)全局作用域:函数之外声明的变量,会成为全局变量。
函数外部声明的变量,在函数内部可以访问。
当函数嵌套,在这个时候,内部函数与外部函数的这个变量就组成了闭包。
3.作用域链
如果在自己的作用域没有这个变量则向父级寻找,如果父级也没呢?再一层一层向上寻找,直到找到全局作用域还是没找到,就宣布放弃。这种一层一层的关系,就是作用域链 。
4.闭包
形成条件:
1.嵌套函数
2.内部函数存在对外部函数变量的引用
3.返回内部函数
优缺点:
优点:不会造成变量污染
缺点:内存泄露 不会被垃圾回收站回收