this的指向
this的指向
之前一直不懂箭头函数和普通函数的区别,什么指针丢失,后来自己试了一下
这里是运行结果
先看前5行 obj.fn()
第一行 fn函数是obj.fn()所以 fn的指向是obj 这很简单
第二行 say函数 因为是箭头函数 this没有丢失 this还是指向obj
第三行 fn1 我是fn函数开始var 了一个that保存了this 这里的指针是一开始就保存好了的 指向obj
第四行 fn2 这里是经典的bind 改变指针的指向
第五行 同样是fn2 但是这里的name age 都是我在最前面 申明过了的
说明丢失的指针指向了window
再看中间的五行 obj.fn.bind(obj1)()
对比一下 默认的this 指向改变了 但是还是最后丢失了
再看最后五行指向window 看不出来谁丢失了 但是之前丢失的指针的第五行和这里指向window的值是一样的 所以丢失的指针指向了window