【JavaScript】動態(tài)執(zhí)行js的方法
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
如何創(chuàng)建一個函數(shù),將一個字符串當作代碼執(zhí)行?。。?/p> 1、eval 方法 特點:同步;作用域是當前運行的作用域。 var log = '全局----我是動態(tài)執(zhí)行的js打印'; function exec (code) { var log = '局部----log我是動態(tài)執(zhí)行的js打印'; eval(code); } exec("console.log(log)"); console.log('sync'); 2、setTimeout 特點:setTimeout 第一個參數(shù)是可以傳字符串的,它會自動的將字符串當作代碼來運行;異步;作用域是全局作用域,不受當前作用域影響。 var log = '全局----我是動態(tài)執(zhí)行的js打印'; function exec (code) { var log = '局部----log我是動態(tài)執(zhí)行的js打印'; setTimeout(code); }; exec("console.log(log)"); console.log('sync'); 3、創(chuàng)建 script 標簽,添加到頁面 特點:會產(chǎn)生一個 script 元素;同步;作用域是全局作用域,不受當前作用域影響。 var log = '全局----我是動態(tài)執(zhí)行的js打印'; function exec (code) { var log = '局部----log我是動態(tài)執(zhí)行的js打印'; const script = document.createElement("script"); script.innerHTML = code; document.head.appendChild(script); } exec("console.log(log)"); console.log('sync'); 4、Function 方法 特點:同步;作用域是全局作用域,不受當前作用域影響,并且不會產(chǎn)生新元素。 ***函數(shù)都是 function 的實例,在實例中的構(gòu)造函數(shù)的最后一個參數(shù)可以作為它的函數(shù)體進行執(zhí)行。*** var log = '全局----我是動態(tài)執(zhí)行的js打印'; function exec (code) { var log = '局部----log我是動態(tài)執(zhí)行的js打印'; new Function(code)(); } exec("console.log(log)"); console.log('sync'); 該文章在 2024/3/22 9:01:44 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |