Rumah  >  Artikel  >  hujung hadapan web  >  Analisis mendalam tentang pengisytiharan dan panggilan fungsi tersuai JS

Analisis mendalam tentang pengisytiharan dan panggilan fungsi tersuai JS

青灯夜游
青灯夜游ke hadapan
2022-08-03 19:28:092127semak imbas

Fungsi ialah satu set blok kod boleh guna semula yang melaksanakan tugas tertentu (mempunyai fungsi tertentu). Selain menggunakan fungsi terbina dalam, kami juga boleh mencipta fungsi kami sendiri (fungsi tersuai) dan kemudian memanggil fungsi ini di mana perlu Ini bukan sahaja mengelakkan menulis kod berulang, tetapi juga memudahkan penyelenggaraan kod kemudian.

Analisis mendalam tentang pengisytiharan dan panggilan fungsi tersuai JS

1: Beberapa cara untuk mengisytiharkan fungsi

Terdapat 3 cara untuk mengisytiharkan fungsi tersuai dalam JavaScript, iaitu menggunakan pernyataan fungsi, gunakan pembina Function() dan tentukan literal fungsi.

1. Pernyataan fungsi

Dalam JavaScript, anda boleh menggunakan pernyataan fungsi untuk mengisytiharkan fungsi. Penggunaan khusus adalah seperti berikut:

function funName([args]) {
    statements
}

funName ialah nama fungsi, yang seperti nama pembolehubah mestilah pengecam JavaScript yang sah. Mengikuti nama fungsi ialah senarai parameter yang disertakan dalam kurungan dan dipisahkan dengan koma. Parameter adalah pilihan dan tiada had pada nombor.

Sebagai pengecam, parameter hanya diakses dalam badan fungsi dan parameter ialah ahli persendirian skop fungsi. Apabila memanggil fungsi, hantar nilai kepada fungsi, kemudian gunakan parameter untuk mendapatkan nilai yang diluluskan secara luaran, dan campur tangan dalam menjalankan fungsi dalam badan fungsi.

Selepas kurungan ialah kurungan Penyataan yang terkandung dalam kurungan adalah kandungan utama struktur badan fungsi. Dalam badan fungsi, pendakap kerinting adalah penting Tanpa pendakap kerinting, JavaScript akan membuang ralat sintaks.

Contoh

Pernyataan fungsi mesti mengandungi nama fungsi, kurungan dan kurungan, dan kod lain boleh ditinggalkan, jadi badan fungsi yang paling mudah ialah fungsi kosong.

function funName() {}  //空函数

Jika menggunakan fungsi tanpa nama, nama fungsi boleh ditinggalkan.

function () {}  //匿名空函数

Pernyataan var dan pernyataan fungsi ialah kedua-dua pernyataan pengisytiharan, dan pembolehubah serta fungsi yang diisytiharkan dihuraikan semasa prapenyusun JavaScript, juga dikenali sebagai promosi pembolehubah dan promosi fungsi. Semasa tempoh pra-penyusun, enjin JavaScript mencipta konteks untuk setiap fungsi, mentakrifkan objek pembolehubah dan mendaftarkan semua parameter formal, pembolehubah peribadi dan fungsi bersarang dalam fungsi sebagai atribut pada objek berubah.

2. Pembina Function()

Gunakan pembina Function() untuk menjana fungsi dengan cepat. Penggunaan khusus adalah seperti berikut:

var funName = new Function(p1, p2, ..., pn, body);

Jenis parameter Function() adalah semua rentetan, p1~pn mewakili senarai nama parameter bagi fungsi yang dicipta, badan mewakili pernyataan struktur fungsi bagi fungsi yang dicipta , dalam pernyataan badan yang dipisahkan oleh titik bertitik.

Contoh 1

Anda boleh meninggalkan semua parameter dan hanya menghantar rentetan untuk mewakili badan fungsi.

var f = new Function ("a", "b", "return a+b");  //通过构造函数来克隆函数结构

Dalam kod di atas, f ialah nama fungsi yang dicipta. Fungsi yang sama ditakrifkan, dan fungsi dengan struktur yang sama boleh direka bentuk menggunakan pernyataan fungsi.

function f(a, b) {  //使用function语句定义函数结构
    return a + b;
}

Contoh 2

Gunakan pembina Function() untuk mencipta struktur fungsi kosong tanpa menyatakan sebarang parameter.

var f = new Function();  //定义空函数

Menggunakan pembina Function() boleh mencipta fungsi secara dinamik. Ia tidak mengehadkan pengguna kepada badan fungsi yang diisytiharkan oleh penyataan fungsi. Menggunakan pembina Function() membolehkan fungsi digunakan sebagai ungkapan dan bukannya sebagai struktur, jadi ia lebih fleksibel untuk digunakan. Kelemahannya ialah pembina Function() disusun semasa pelaksanaan, kecekapan pelaksanaan adalah sangat rendah, dan penggunaannya secara amnya tidak disyorkan.

3. Fungsi tanpa nama (fungsi literal)

Fungsi literal juga dipanggil fungsi tanpa nama, iaitu fungsi tidak mempunyai nama fungsi dan hanya mengandungi kata kunci fungsi, parameter dan badan fungsi. Penggunaan khusus adalah seperti berikut:

function ([args]) {
    statements
}

Contoh 1

Kod berikut mentakrifkan fungsi literal.

function (a, b) {  //函数直接量
    return a + b;
}

Dalam kod di atas, literal fungsi pada asasnya sama seperti menggunakan pernyataan fungsi untuk mentakrifkan struktur fungsi, dan strukturnya ditetapkan. Walau bagaimanapun, fungsi literal tidak menyatakan nama fungsi, tetapi secara langsung menggunakan fungsi kata kunci untuk mewakili struktur fungsi Fungsi jenis ini juga dipanggil fungsi tanpa nama.

Contoh 2

Fungsi tanpa nama ialah ungkapan, iaitu ungkapan fungsi, bukan pernyataan struktur fungsi. Seterusnya, tetapkan fungsi tanpa nama sebagai nilai kepada pembolehubah f.

//把函数作为一个值直接赋值给变量 f
var f = function (a, b) {
    return a + b;
};

Apabila struktur fungsi ditugaskan kepada pembolehubah sebagai nilai, pembolehubah boleh dipanggil sebagai fungsi dan pembolehubah menghala ke fungsi tanpa nama.

console.log(f(1,2));  //返回值3

Analisis mendalam tentang pengisytiharan dan panggilan fungsi tersuai JS

Contoh 3

Fungsi tanpa nama berfungsi sebagai nilai dan boleh mengambil bahagian dalam operasi ekspresi yang lebih kompleks. Untuk contoh di atas, anda boleh menggunakan kod berikut untuk melengkapkan operasi bersepadu definisi dan panggilan fungsi.

console.log(  //把函数作为一个操作数进行调用
    (function (a,b) {
        return a + b;
    })(1, 2));  //返回数值3

Analisis mendalam tentang pengisytiharan dan panggilan fungsi tersuai JS

4. Fungsi anak panah

Fungsi anak panah ialah singkatan bagi fungsi dalam es6. Fungsi anak panah tidak mempunyai ini sendiri. Ini ditentukan apabila ia ditakrifkan, dan nilainya adalah ini daripada lapisan sebelumnya.

//箭头函数
const sayName = ()=>{
    console.log("箭头函数")
}

二:调用函数

一旦定义好了一个函数,我们就可以在当前文档的任意位置来调用它。调用函数非常简单,只需要函数名后面加上一个括号即可,例如 alert()、write()。注意,如果在定义函数时函数名后面的括号中指定了参数,那么在调用函数时也需要在括号中提供对应的参数。

示例代码如下:

function sayHello(name){
    document.write("Hello " + name);
}
// 调用 sayHello() 函数
sayHello('PHP中文网');

Analisis mendalam tentang pengisytiharan dan panggilan fungsi tersuai JS

提示:JavaScript 对于大小写敏感,所以在定义函数时 function 关键字一定要使用小写,而且调用函数时必须使用与声明时相同的大小写来调用函数。

【相关推荐:javascript学习教程

Atas ialah kandungan terperinci Analisis mendalam tentang pengisytiharan dan panggilan fungsi tersuai JS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:biancheng.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam