Rumah  >  Artikel  >  hujung hadapan web  >  Perbincangan ringkas tentang sifat dalaman fungsi JavaScript_Pengetahuan asas

Perbincangan ringkas tentang sifat dalaman fungsi JavaScript_Pengetahuan asas

WBOY
WBOYasal
2016-05-16 16:18:45902semak imbas

Terdapat dua atribut khas di dalam fungsi: argumen dan ini. argumen ialah objek seperti tatasusunan yang mengandungi semua parameter yang diluluskan,
Tetapi objek ini juga mempunyai atribut yang dipanggil callee, yang merupakan penunjuk kepada fungsi yang memiliki objek argumen.

Sila lihat contoh fungsi faktorial klasik:

Salin kod Kod adalah seperti berikut:

fungsi Faktorial(bilangan) {
Jika (bilangan <= 1) {
                    kembali 1;
              } lain {
Pulangan nombor * Faktorial(bilangan - 1);
            }
}
fungsi Faktorial(bilangan) {
Jika (bilangan <= 1) {
                    kembali 1;
              } lain {
Kembalikan num * arguments.callee(num - 1);
            }
}

Tidak salah menggunakan kaedah pertama, tetapi gandingan terlalu tinggi, yang tidak baik Selepas nama fungsi ditukar, nama fungsi dalaman juga mesti berubah
Kaedah kedua ialah gandingan rendah Tidak kira bagaimana nama fungsi berubah, ia tidak akan menjejaskan pelaksanaan fungsi.

Ini merujuk kepada objek persekitaran di mana data fungsi dilaksanakan, atau ia juga boleh dikatakan sebagai nilai ini

Salin kod Kod adalah seperti berikut:

          window.color = "merah";
      var o = {warna: "biru"};
fungsi sayColor() {
makluman(warna.ini);
}
         sayColor();//merah
o.sayColor = sayColor;
o.sayColor();//biru

Atribut pemanggil memegang rujukan fungsi yang memanggil fungsi semasa Jika fungsi semasa dipanggil dalam skop global, nilainya adalah Null

Salin kod Kod adalah seperti berikut:

fungsi outer() {
              dalam();
}
         fungsi inter(){
                  //alert(innter.caller);//Gandingan terlalu tinggi
alert(arguments.callee.caller);
}
        luar();

Di atas adalah semua kandungan sifat dalaman fungsi javascript saya harap anda semua menyukainya

Kenyataan:
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