猿问

关于js自执行函数报错的问题

//调用

https://img2.mukewang.com/5bee30cc0001072b03890171.jpg

这么调用没问题,但是写成以下自执行函数就报错

https://img3.mukewang.com/5bee30d60001822d03880158.jpg

https://img3.mukewang.com/5bee30e200019b8d04500045.jpg

新手不知道什么原理?不吝赐教,谢谢了

鸿蒙传说
浏览 643回答 1
1回答

蛊毒传说

IIFE前面最好加上分号;;(function(){&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;First&nbsp;=&nbsp;document.querySelector('.first'), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;firstBody&nbsp;=&nbsp;document.querySelector('.first_body'), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Btn&nbsp;=&nbsp;document.querySelector('.btn'), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;btnBody&nbsp;=&nbsp;document.querySelector('.btnbody');&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;myFunc&nbsp;=&nbsp;kim.prototype; &nbsp;&nbsp;&nbsp;&nbsp;myFunc.init(First,&nbsp;firstBody); &nbsp;&nbsp;&nbsp;&nbsp;myFunc.closeWindow(Btn,&nbsp;btnBody); })()原因就在于代码压缩之后会出现以下情况://&nbsp;obj&nbsp;<obj>var&nbsp;a&nbsp;=&nbsp;obj(function&nbsp;()&nbsp;{})()这样就成了obj调用,就会报错,加上了分号//&nbsp;obj&nbsp;<obj>var&nbsp;a&nbsp;=&nbsp;obj;(function&nbsp;()&nbsp;{})();这种尴尬就没有啦
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答