js this指向问题

image.png
这么写的话此时打印的this是undefined,把success的回调改成箭头函数就可以打印出this,求解释,感谢各位

阅读 1.3k
2 个回答

function 的 this 和箭头函数的 this 有不同的指向规则,箭头函数使用其定义环境的中的 this。

至于 function 的时候为什么 this 是 undefined,这个取决于 wx.getStorage 是怎么调用的。一般情况下,回调就是直接调用,而不是绑定对象或者作为方法调用,那么 this 在 strict 模式下是 undefined,非 strict 模式下是全局对象(比如 window)。

来看这篇:JavaScript 的 this 指向问题深度解析

函数this指向要看函数具体是这么调用的,你这里没给出来,因为这里函数的调用是wx里面封装的,不过一般这种封装调用都是

let succesFn = option.success

succesFn && succesFn(resulte)

此时函数的调用是无主的,严格模式下会指向undefined,而换用箭头函数,箭头函数没有this,他里面的this相当于一个变量,会向上层作用于查找

推荐问题
宣传栏