VUE中如何动态编译js

JavaScript018

VUE中如何动态编译js,第1张

需求:动态获取一段字符串类型的js脚本,动态编译它并且可以完美在vue中运行与之交互。

实现:动态编译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/

JS动态调用方法名

1.方法就是使用js里面的eval 下面是自己写的例子 代码如下: call("showmsg")functioncall(functionName){ eval("this."+functionName+"()")}functionshowmsg(){ alert("success")} eval能将你拼接的字符串自动识别为方法,并调用。 但弊端也是很大的,想象一下,某个人改你调用地方的方法名,便能调用你的任意方法。

2.方法主要用作自己定义的方法 主要是第二种方法需要特定的方式去写 代码如下: functioncall(functionName) { showmsgs["showmsg"]()}varshowmsgs