原文:eval和new Function的區別

eval和new Function都可以動態解析和執行字符串。但是它們對解析內容的運行環境判定不同。 eval中的代碼執行時的作用域為當前作用域。它可以訪問到函數中的局部變量。 new Function中的代碼執行時的作用域為全局作用域,不論它的在哪個地方調用的。所以它訪問的是全局變量a。它根本無法訪問b函數內的局部變量。 注意,當我們在b函數中不定義變量a時,兩種方法的輸出相同。這與上述結論並不 ...

2016-05-25 10:07 0 2987 推薦指數:

查看詳情

Javascript動態執行JS(new Functioneval比較)

new Functioneval可以動態執行JS,只要把拼接好的JS方法,然后以字符串的形式傳入到這兩個函數,可以執行,其中new Function用在模板引擎比較多。 用 Function 類直接創建函數的語法如下: 在上面的形式中,每個 arg 都是一個參數,最后一個參數 ...

Wed Dec 28 08:56:00 CST 2016 0 4177
JS-[functionnew function區別]

functionnew function區別 var a=function(){} var a=new function(){} return基本類型數據 return非基本類型數據 ...

Mon Jul 29 06:49:00 CST 2019 0 702
eval() 和 int()區別,以及eval作用

eval()方法作用是將數據轉換回原本的類型 a = str(list) type(a)--->str eval(a) type(a)--->list ...

Sat Oct 06 05:52:00 CST 2018 0 4436
javascript 中function(){}(),new function(),new Function(),Function

和java比起來,javascript真的是松散的無以復加,不過這也讓我們在無聊之余,有精力去探討一些復雜的應用,從而在開發之路上,獲得一些新的想法。 javascript中的類的構造 javas ...

Wed Feb 22 17:44:00 CST 2017 1 15118
$(function(){})與 (function(){})() (function($){})() 的區別

1. $(function(){ }) 或 jQuery(function(){ }) 此函數也可以寫成 jQuery(function(){ }), 用於存放操作DOM對象的代碼,執行其中代碼時DOM對象已存在。不可用於存放開發插件的代碼,因為jQuery對象沒有得到傳遞,外部 ...

Mon Jan 25 01:33:00 CST 2016 0 8289
new Function()語法

學習《ECMAScript6入門》中的模板字符串的案例中看見了new Function()創建函數的語法: 上面的代碼傳入name參數和字符串函數體,字符串函數體由模板字符串提供,非常簡潔方便。 為理解new Function,於是找到了下面這篇文章: 下文翻譯自:https ...

Fri Dec 07 04:48:00 CST 2018 0 13033
execScript與eval區別

相同點: (1)execScript與eval都可以接收一個字符串,若該字符串是表達式(expression),則執行時將求得該表達式的值並返回;若該字符串是一個或多個語句(statements),則執行時將運行這些語句。 不同點: (1)execScript是IE瀏覽器獨有;eval則是 ...

Fri Oct 11 07:09:00 CST 2013 0 5903
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM