使用wow.js的时候出现了如下图的报错,虽然不影响使用,但是总看着不爽。

记一次使用wow.js 报错,config is undefined

定位到报错位置,发现全部都压缩成了一行,用编辑器格式化一下就舒服多了。或者使用未压缩的版本也可以。
记一次使用wow.js 报错,config is undefined
格式化之后刷新浏览器,发现错误在133行。

记一次使用wow.js 报错,config is undefined
代码经过混淆,阅读起来稍微有点困难。

先看一下wow.js是怎么用的。

记一次使用wow.js 报错,config is undefined
可以猜测到,代码中的e即指代WOW,config即指实例化时传入的参数,看到其他地方有使用config.mobile就能确认。

报错的代码在一个resetAnimation函数中,先打印一下this看看。
记一次使用wow.js 报错,config is undefined
看一下浏览器输出,居然是一个div,有点懵了。
记一次使用wow.js 报错,config is undefined
看一下其他地方调用this.config的地方,打印一下this。

记一次使用wow.js 报错,config is undefined
很明显,这两个this不一样。。。
记一次使用wow.js 报错,config is undefined
到这里我有些懵逼,都是我学艺不精。。。

随手搜索了一下resetAnimation,发现有四个地方似乎是使用时间监听来触发resetAnimation,难不成是因为这个原因导致this指向出现问题?
记一次使用wow.js 报错,config is undefined
试着在后面加上bind(this)
记一次使用wow.js 报错,config is undefined
查看一下浏览器,发现resetAnimation里面输出的this好像正常了。
记一次使用wow.js 报错,config is undefined
Yes!接下来把resetAnimation中的config改成this.config就完成啦!
至此,报错消失。

相关文章: