首頁  >  文章  >  web前端  >  如何在 JavaScript 中將字串轉換為函數?

如何在 JavaScript 中將字串轉換為函數?

WBOY
WBOY轉載
2023-09-11 11:01:111789瀏覽

如何在 JavaScript 中将字符串转换为函数?

我們給定了一個字串,需要將其轉換為 JavaScript 中的函數。有時,我們得到字串形式的數學或函數表達式,執行該表達式需要將字串轉換為函數表達式。在本教程中,我們將學習將給定字串轉換為函數或數學表達式的不同方法。

使用 eval() 方法

eval() 方法將表達式作為參數並對表達式求值。例如,如果我們將「2 2」字串作為 eval() 方法的參數傳遞,則在計算數學表達式 2 2 時,它會傳回 4。

它也像數學表達式一樣計算函數表達式。

文法

使用者可以按照下面的語法使用 eval() 方法將字串轉換為 JavaScript 中的函數。

eval("var func = () => { output.innerHTML = 'Hello Users!'; }";);
func(); 

在上面的語法中,我們將函數字串作為 eval() 方法的參數傳遞。

範例 1

在下面的範例中,我們建立了包含函數表達式的字串。函數表達式在網頁上列印訊息。

之後,我們將字串作為 eval() 方法的參數傳遞,然後我們就像呼叫普通函數一樣執行了 func() 函數。

func() 函數提供與普通函數相同的輸出。

<html>
<body>
   <h2>Using the <i> eval() </i> method to convert a string into the function expression in JavaScript. </h2>
   <div id = "output"> </div>
</body>
<script>
   let output = document.getElementById('output');
   let funcStr = "var func = () => { output.innerHTML = 'Hello Users!';}";
   eval(funcStr);
   func();
</script>
</html>

範例 2

在下面的例子中,我們建立了對象,對象的 getHeight 屬性包含字串格式的函數

我們使用 eval() 方法來計算 getHeight 屬性的字串值,並將函數字串轉換為表達式後再次將其儲存在 getHeight 屬性中。

之後,我們執行了 getHeight() 函數,該函數傳回我們儲存在 height 變數中的高度。

<html>
<body>
   <h2>Using the <i> eval() </i> method to convert a string into the function expression in JavaScript. </h2>
   <div id = "output"> </div>
</body>
<script>
   let output = document.getElementById('output');
   let object = {
      name: "Shubham",
      "getHeight": "function func() { return '6 Feet';}",
      age: 22,
   }
   object.getHeight = eval("(" + object.getHeight + ")");
   let height = object.getHeight();
   output.innerHTML += "The height is " + height + "<br/>";
</script>
</html>

使用函數建構子

Function() 建構子允許我們從字串建立一個函數。 Function() 建構子可以帶 N 個參數。 Function constructor()的前N-1個參數作為要建立的函數的參數,第N個參數為函數表達式

文法

使用者可以依照下列語法使用 Function() 建構子從字串建立函數。

let func = new Function(expression); 

在上述語法中,func 是使用 Function() 建構子建立的。表達式是包含函數表達式的字串。

範例 3

在下面的範例中,我們建立了表達式字串。我們也在表達式字串中使用 eval() 方法評估數學表達式。

之後,我們像普通函數一樣呼叫 func() 函數,使用者可以觀察輸出

<html>
<body>
   <h2>Using the <i> Function() </i> constructor to convert a string into the function expression in JavaScript. </h2>
   <div id = "output"> </div>
</body>
<script>
   let output = document.getElementById('output');
   let expression = "output.innerHTML += 'The value of 10 + 10 is ' + eval(10 + 10);";
   let func = new Function(expression);
   func();
</script>
</html>

範例 4

在下面的範例中,我們已將多個參數傳遞給 Function() 建構子。前三個參數用作作為第四個參數傳遞的函數表達式的參數。

我們列印函數表達式中的參數值。在輸出中,使用者可以看到它列印了參數的預設值,因為我們在呼叫 concatString() 函數時沒有傳遞任何參數。

<html>
<body>
   <h2>Using the <i> Function() </i> constructor to convert a string into the function expression in JavaScript. </h2>
   <div id = "output"> </div>
</body>
<script>
   let output = document.getElementById('output');
   let expression = "output.innerHTML += 'The value of param1 + param2 + param3 is ' + param1 + param2 + param3;";
   let concatString = new Function("param1 = 'Welcome '", "param2 = 'To the '", "param3 = ' TutorialsPoint!'", expression);
   concatString();
</script>
</html>

在本教程中,我們學習了使用兩種不同的方法將字串轉換為函數表達式。在第一種方法中,我們使用了 eval() 方法,我們可以使用它來計算 JavaScript 中的任何表達式。

在第二種方法中,我們使用了 Function 建構函數,它將函數參數和函數表達式作為參數來建立一個新函數。

以上是如何在 JavaScript 中將字串轉換為函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除