【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 編輯過 |
關鍵字查詢
相關文章
正在查詢... |