实现:动态编译js的方式有eval和new function
简单例子:
eval:
new function:
显然后者更利于扩展,详细了解区别可以参考链接内容:
https://www.zhihu.com/question/29743491
https://imys.net/20151222/eval-with-new-function.html
要注意使用new Function,在vue环境中直接赋值的方式函数作用域与赋值vue结构对象不同: https://jsfiddle.net/5neLzn1x/
vue压缩后的js可以反编译出来,反编译方法为:
1、在桌面找到自己下载的浏览器软件,点击浏览器图标。
2、在浏览器中随便找个网址登入。
3、在网页上右键鼠标,弹出右键菜单中选择“审查元素”选项(或按F12),弹出开发工具弹框,在弹框中选择“Sources”选项。如下图所示。
4、在左侧网络文件列表中随便找个js文件(如:mt_show_1.8.js文件),点击该文件并查看文件内容。发现文件一行展示证明被压缩过了。
5、找到该文件内容左下角的“{}”标签,找到后并点击该标签。
6、随后左侧会生成一个格式化后的文件(如:mt_show_1.8.js:formatted文件),查看js文件内容,内容展示成正常的格式了。现在就可以读懂里面的代码了。