1.函数的作用域是定义函数的时候决定的,而不是执行函数的时候决定的。
如下图,函数自执行(掌握)
//弹窗的是10,因为不能访问同一个函数的变量,只能去全局作用域里面找。
2.this指向:在任意的作用域里面都有this指向,并且是关键词。
在同一个作用域里面的this指向是相同的,但是采用不同的执行方式,this指向是不一样的,区别于函数的作用域:函数的This指向是执行函数的时候决定的,而不是定义函数的时候决定的。
1)this指向window,因为是使用了window.aa();所以指向window
如图
2)事件this指向(掌握)
如图
3)对象指向
效果图
4)总结
3.改变this指向(处理逻辑更复杂的时候,需要使用this指向)
call和bind可改变this指向
1)针对函数本身
2)call 指向其他的变量
3)call 针对对象 call(自执行一次并且改变this)
4)bind: 既想要改变this指向,又不想要函数自执行的方法,使用bind,因为bind已经把this固定死了
5)apply也可以改变this指向
applay区别call在于传参
applay传参:只有两个参数,所有的实参都要放在数组里面,第一个参数是this指向
call传参:错开一位,让实参与形参一一对应,因为第一位已经使用在this指向了。
如图
总结: