2017-02-20 69 views
-1

我們都知道使用eval()會帶來危險,應該永遠不要使用。但是,讓我們假設您可以完全控制輸入以評估,並且可以安全地使用它。我的問題是,如果我要使用如下所示的eval()生成一個函數,然後多次調用生成的函數,這是否會受益於瀏覽器運行時(如V8)中的編譯器/運行時優化?使用JavaScript的eval生成的函數可以優化嗎?

eval('var myFunction = function() { return 1 * 2/3 }') 
myFunction() 

回答

1

我寧願認爲它在運行時產生負面影響,因爲當eval()被調用,而不是當文檔加載功能解析。

JavaScript引擎(如V8)的優化不受函數生成方式的影響。

+0

感謝您的回答。我想我明白。使用eval生成函數會更慢,因爲編譯會延遲,但是如果函數存儲在某處並稍後使用,則可以像其他函數一樣優化 – ChrisBellew

+0

@ChrisBellew您可以編輯自己的評論。請不要添加另一個只是爲了修正錯字。 –

相關問題