Bagaimana untuk menukar rentetan kepada berfungsi dalam JavaScript?

WBOY
Lepaskan: 2023-09-11 11:01:11
ke hadapan
1761 orang telah melayarinya

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

Kami diberi rentetan dan perlu menukarnya menjadi fungsi dalam JavaScript. Kadangkala kita mendapat ungkapan matematik atau fungsi dalam bentuk rentetan, dan melaksanakan ungkapan itu memerlukan menukar rentetan itu menjadi ungkapan fungsi. Dalam tutorial ini, kita akan mempelajari cara yang berbeza untuk menukar rentetan yang diberikan kepada fungsi atau ungkapan matematik.

Gunakan kaedah eval()

Kaedah

eval() mengambil ungkapan sebagai parameter dan menilai ungkapan tersebut. Sebagai contoh, jika kita menghantar rentetan "2 + 2" sebagai hujah kepada kaedah eval(), ia akan mengembalikan 4 apabila ungkapan matematik 2+2 dinilai.

Ia juga menilai ungkapan fungsi seperti ungkapan matematik.

Tatabahasa

Pengguna boleh menggunakan kaedah eval() mengikut sintaks berikut untuk menukar rentetan kepada fungsi dalam JavaScript.

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

Dalam sintaks di atas, kami menghantar rentetan fungsi sebagai parameter kaedah eval().

Contoh 1

Dalam contoh di bawah, kami telah mencipta rentetan yang mengandungi ungkapan fungsi. Ekspresi fungsi mencetak mesej pada halaman web.

Selepas itu, kami menghantar rentetan sebagai parameter kepada kaedah eval(), dan kemudian kami melaksanakan fungsi func() sama seperti memanggil fungsi biasa.

Fungsi

func() menyediakan output yang sama seperti fungsi biasa.

<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>
Salin selepas log masuk

Contoh 2

Dalam contoh di bawah, kami mencipta objek yang sifat getHeightnya mengandungi fungsi dalam format rentetan

Kami menggunakan kaedah eval() untuk mengira nilai rentetan sifat getHeight dan menukar rentetan fungsi menjadi ungkapan sebelum menyimpannya semula dalam sifat getHeight.

Selepas itu, kami melaksanakan fungsi getHeight(), yang mengembalikan ketinggian yang kami simpan dalam pembolehubah ketinggian.

<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>
Salin selepas log masuk

Gunakan pembina fungsi

Function() constructor membenarkan kami mencipta fungsi daripada rentetan. Pembina Function() boleh mengambil N parameter. Parameter N-1 pertama Function constructor() digunakan sebagai parameter fungsi yang akan dibuat, dan parameter Nth ialah ungkapan fungsi

Tatabahasa

Pengguna boleh mencipta fungsi daripada rentetan menggunakan pembina Function() mengikut sintaks berikut.

let func = new Function(expression); 
Salin selepas log masuk

Dalam sintaks di atas, func dicipta menggunakan pembina Function(). ungkapan ialah rentetan yang mengandungi ungkapan fungsi.

Contoh 3

Dalam contoh di bawah, kami mencipta rentetan ungkapan. Kami juga menggunakan kaedah eval() dalam rentetan ungkapan untuk menilai ungkapan matematik.

Selepas itu, kami memanggil fungsi func() seperti fungsi biasa dan pengguna boleh memerhatikan output

<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>
Salin selepas log masuk

Contoh 4

Dalam contoh di bawah, kami telah menghantar berbilang parameter kepada pembina Function(). Tiga parameter pertama digunakan sebagai parameter untuk ungkapan fungsi yang diluluskan sebagai parameter keempat.

Kami mencetak nilai parameter dalam ungkapan fungsi. Dalam output, pengguna boleh melihat bahawa ia mencetak nilai lalai parameter kerana kami tidak lulus sebarang parameter semasa memanggil fungsi 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>
Salin selepas log masuk

Dalam tutorial ini, kami belajar untuk menukar rentetan kepada ungkapan fungsi menggunakan dua kaedah berbeza. Dalam kaedah pertama, kami menggunakan kaedah eval(), yang boleh kami gunakan untuk menilai sebarang ungkapan dalam JavaScript.

Dalam kaedah kedua, kami menggunakan pembina Fungsi yang mengambil parameter fungsi dan ekspresi fungsi sebagai parameter untuk mencipta fungsi baharu.

Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan kepada berfungsi dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!