【JavaScript】动态执行js的方法
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
如何创建一个函数,将一个字符串当作代码执行!!! 1、eval 方法 特点:同步;作用域是当前运行的作用域。 var log = '全局----我是动态执行的js打印'; function exec (code) { var log = '局部----log我是动态执行的js打印'; eval(code); } exec("console.log(log)"); console.log('sync'); 2、setTimeout 特点:setTimeout 第一个参数是可以传字符串的,它会自动的将字符串当作代码来运行;异步;作用域是全局作用域,不受当前作用域影响。 var log = '全局----我是动态执行的js打印'; function exec (code) { var log = '局部----log我是动态执行的js打印'; setTimeout(code); }; exec("console.log(log)"); console.log('sync'); 3、创建 script 标签,添加到页面 特点:会产生一个 script 元素;同步;作用域是全局作用域,不受当前作用域影响。 var log = '全局----我是动态执行的js打印'; function exec (code) { var log = '局部----log我是动态执行的js打印'; const script = document.createElement("script"); script.innerHTML = code; document.head.appendChild(script); } exec("console.log(log)"); console.log('sync'); 4、Function 方法 特点:同步;作用域是全局作用域,不受当前作用域影响,并且不会产生新元素。 ***函数都是 function 的实例,在实例中的构造函数的最后一个参数可以作为它的函数体进行执行。*** var log = '全局----我是动态执行的js打印'; function exec (code) { var log = '局部----log我是动态执行的js打印'; new Function(code)(); } exec("console.log(log)"); console.log('sync'); 该文章在 2024/3/22 9:01:44 编辑过 |
关键字查询
相关文章
正在查询... |