这么写的话此时打印的this是undefined,把success的回调改成箭头函数就可以打印出this,求解释,感谢各位
函数this指向要看函数具体是这么调用的,你这里没给出来,因为这里函数的调用是wx里面封装的,不过一般这种封装调用都是
let succesFn = option.success
succesFn && succesFn(resulte)
此时函数的调用是无主的,严格模式下会指向undefined,而换用箭头函数,箭头函数没有this,他里面的this相当于一个变量,会向上层作用于查找
27 回答13k 阅读
6 回答2.3k 阅读✓ 已解决
8 回答3.5k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
5 回答5.3k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
6 回答1.1k 阅读
function 的 this 和箭头函数的 this 有不同的指向规则,箭头函数使用其定义环境的中的 this。
至于 function 的时候为什么 this 是 undefined,这个取决于 wx.getStorage 是怎么调用的。一般情况下,回调就是直接调用,而不是绑定对象或者作为方法调用,那么 this 在 strict 模式下是 undefined,非 strict 模式下是全局对象(比如 window)。
来看这篇:JavaScript 的 this 指向问题深度解析