普通函数:
1.thiss表示的是它的直接调用者,
2.默认情况下,如果没有直接调用者,this指向window
3.在严格模式下,如果没有直接调用者this表示undefined
4.使用call,apply,bind,绑定 的this指向绑定的对象
箭头函数
this默认指向在定义它时它所在的对象,而不是执行对象
例如:例1.
返回的是 window
例2
调用结果是2,4,8,8
<1> 12行代码
val变量在没有指定对象前缀,默认从函数中找,找不到则从window中找全局变量
即 val *=2 就是 window.val *= 2
this.val默认指的是 obj.val ;因为 dbl()第一次被obj直接调用
<2>14行代码调用
func() 没有任何前缀,类似于全局函数,即 window.func调用,所以
第二次调用的时候, this指的是window, val指的是window.val
第二次的结果受第一次的影响
例3.
返回的是undefined
例4.
由于是箭头函数,所以返回的是定义它时它所在的对象,所以是 obj
网友评论