2013-02-24 192 views
0

我想知道如何將字符串轉換爲換行函數。js,將字符串轉換爲函數

我有一個字符串函數數據

var a = new String("alert(turned)"); 

而且我想轉成包裝的函數

a = function(){ a }; // failed 

a = function(){ eval(a) }; // failed 

var b = a; 

a = function(){ eval(b) } // success 

我想知道什麼人會在一般做轉成包裝功能。

非常感謝您的建議。

回答

3

您也可以使用函數的構造與new關鍵字這樣。

var a = new String("alert('hello')"); 
a = new Function(a) 
a() 

會導致一個警告框,「你好」

你甚至可以使用這種方法,它接受的參數做出新的功能。看到這裏https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function

但我會小心你變成一個函數。您不希望用戶能夠執行代碼。

+0

非常感謝你! – Till 2013-02-24 05:08:58

1
var a = eval (" return function() { alert('yo')}; "); 

但不要

+0

非常感謝你! – Till 2013-02-24 05:09:57