Rumah  >  Artikel  >  hujung hadapan web  >  Apakah fungsi tanpa nama dalam JavaScript? Analisis ringkas senario aplikasi

Apakah fungsi tanpa nama dalam JavaScript? Analisis ringkas senario aplikasi

青灯夜游
青灯夜游ke hadapan
2022-08-04 13:10:362349semak imbas

Seperti namanya, fungsi tanpa nama merujuk kepada fungsi tanpa nama Ia digunakan dengan kerap dalam pembangunan sebenar dan juga menjadi tumpuan pembelajaran JS dengan baik. Artikel berikut akan memberi anda pengenalan terperinci kepada fungsi tanpa nama dalam JavaScript Saya harap ia akan membantu anda! Fungsi tanpa nama: Fungsi tanpa nama sebenar.

Apakah fungsi tanpa nama dalam JavaScript? Analisis ringkas senario aplikasi

Mula-mula kami mengisytiharkan fungsi normal:

Kemudian alih keluar nama fungsi untuk menjadi fungsi tanpa nama:

Itu sahaja, anda akan mendapati bahawa apabila menjalankan fungsi tanpa nama sahaja, ralat dilaporkan kerana ia tidak memenuhi keperluan tatabahasa!

Penyelesaian: Hanya bungkus kurungan di sekeliling fungsi tanpa nama untuk menjadikannya ungkapan:

//声明一个普通函数,函数的名字叫fn
function fn(){
    console.log("web-chubby");
}

Bagaimana untuk melaksanakan dan menggunakan fungsi tanpa nama?

//匿名函数,咦,运行时,你会发现报错啦!
function (){
    console.log("web-chubby");
}

1. Jalankan fungsi tanpa nama

Apakah fungsi tanpa nama dalam JavaScript? Analisis ringkas senario aplikasiJika anda perlu melaksanakan fungsi tanpa nama, tambahkan kurungan selepas fungsi tanpa nama, iaitu, laksanakan fungsi dengan segera

//匿名函数在其它应用场景括号可以省略
(function (){
    //由于没有执行该匿名函数,所以不会执行匿名函数体内的语句。
    console.log("web-chubby");
})
Tanda kurung hanya membalut fungsi tanpa nama diikuti dengan kurungan pelaksanaan (biasa digunakan)

kurungan Balut fungsi tanpa nama dan kurungan yang melaksanakan fungsi tanpa nama untuk membentuk ungkapan

  • 2. Bagaimana untuk menghantar parameter kepada fungsi tanpa nama


    dan parameter biasa lain Begitu juga, tulis sahaja parameter terus dalam kurungan:

(function () {
      alert('匿名函数执行方式一')
})();
    Aplikasi fungsi tanpa nama

Ikat kaedah masa Peristiwa

 (function (m) {
      alert(m)
    }('这是匿名函数传进来的参数'));

Ungkapan fungsi memberikan fungsi tanpa nama kepada pembolehubah

  • Fungsi atribut dalam objek
<input type="button" value="点我啊!" id="sub">
<script>
    //获得按钮元素
    var sub=document.querySelector("#sub");
    //给按钮增加点击事件。
    sub.onclick=function(){
        alert("当点击按钮时会执行到我哦!");
    }
</script>
  • Fungsi panggil balik, mengambil fungsi tanpa nama sebagai salah satu parameternya
//将匿名函数赋值给变量fn。
var fn=function(){
    return "我是一只小小小小留下,怎么飞也飞不高!"
}
//调用方式与调用普通函数一样
console.log(fn());//我是一只小小小小留下,怎么飞也飞不高!
  • Fungsi mengembalikan nilai, iaitu fungsi digunakan sebagai nilai pulangan
var obj={
    name:"web-chubby",
    age:18,
    fn:function(){
        return "我叫"+this.name+"今年"+this.age+"岁了!";
    }
};
console.log(obj.fn());//我叫web-chubby今年18岁了!
  • Meniru peringkat blok kesan Domain
 //过滤出值为9的值
    let numArr = [1, 5, 9, 10]
    let newArr = numArr.filter(function (item) {
      if (item !== 9) {
        return item
      }
    });
    skop peringkat blok, kadangkala dipanggil skop peribadi. Tiada skop peringkat blok dalam JavaScript Contohnya:
  • if(){}for(){}, dsb. tidak mempunyai skopnya sendiri. Jika ia keluar dari skopnya sendiri, pembolehubah yang diisytiharkan akan dimusnahkan serta-merta. Tetapi kita boleh mensimulasikan skop peringkat blok melalui fungsi tanpa nama:
//将匿名函数作为返回值
function fn(){
    //返回匿名函数
    return function(){
        return "web-chubby";
    }
}
//调用匿名函数
console.log(fn()());//web-chubby
//或
var box=fn();
console.log(box());//web-chubby
Cuba skop peringkat blok:

Peranan fungsi tanpa nama:

1. Penutupan boleh dilaksanakan melalui fungsi tanpa nama akan diterangkan dalam artikel berikut. Pengenalan pantas di sini: penutupan ialah fungsi yang boleh mengakses pembolehubah yang ditakrifkan dalam skop fungsi. Untuk membuat penutupan, anda selalunya perlu menggunakan fungsi tanpa nama.

if(1==1){//条件成立,执行if代码块语句。
    var a=12;//a为全局变量
}
console.log(a);//12
for(var i=0;i<3;i++){
    console.log(i);
}
console.log(i);//4
2. Simulasikan skop peringkat blok dan kurangkan pembolehubah global. Selepas melaksanakan fungsi tanpa nama, pembolehubah sepadan yang disimpan dalam memori akan dimusnahkan, sekali gus menjimatkan memori. Tambahan pula, dalam projek pembangunan berbilang orang berskala besar, menggunakan skop peringkat blok akan mengurangkan masalah konflik penamaan, dengan itu mengelakkan akibat bencana. Pembangun tidak perlu lagi bimbang tentang mengacaukan skop global.

[Cadangan berkaitan:
(function(){
    //这里是我们的块级作用域(私有作用域)
})();
tutorial pembelajaran javascript

]
function fn(){
    (function(){
        var la="啦啦啦!";
    })();
    console.log(la);//报错---la is not defined
}
fn();

Atas ialah kandungan terperinci Apakah fungsi tanpa nama dalam JavaScript? Analisis ringkas senario aplikasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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