Analisis terperinci tentang kemahiran definisi_javascript fungsi JavaScript

WBOY
Lepaskan: 2016-05-16 15:50:04
asal
997 orang telah melayarinya

Fungsi

Beberapa perkara penting:

a). Fungsi ialah warga kelas pertama dalam JavaScript (kepentingan)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          . c). Fungsi mentakrifkan skop pembolehubah bebas

Kaedah definisi

a) Fungsi bernama:

Fungsi yang dinamakan adalah global melainkan ditakrifkan di dalam fungsi lain.

      // 全局的命名函数
  function add(x, y) {
    return x + y;
  }
  console.info(add(100, 200));  //300

Salin selepas log masuk
b) Fungsi tanpa nama:

Fungsi tanpa nama biasanya diberikan kepada pembolehubah dan kemudian dipanggil melalui pembolehubah.

    var func = function (x, y) {
      return x + y;
    }
    console.info(func(5, 2)); //7
Salin selepas log masuk
Fungsi tanpa nama sesuai untuk situasi "fungsi tanpa nama yang dilaksanakan serta-merta" berikut:

    console.info(
      function (x, y) {
            return x + y;
          }(100, 200)  //立即调用
        );
Salin selepas log masuk
C) Kaedah definisi mempengaruhi kesan pelaksanaan kod

Fungsi yang dinamakan boleh digunakan dahulu dan kemudian ditakrifkan

    console.info(sum(10, 10));
    function sum(num1, num2) {
      return num1 + num2;
    }
Salin selepas log masuk
Fungsi tanpa nama mesti ditakrifkan terlebih dahulu sebelum menggunakan

    //console.info(sumFunc(10, 10));  //Uncaught TypeError: Property 'sumFunc' of object [object Object] is not a function 
    var sumFunc = function (num1, num2) {
      return num1 + num2;
    };
    console.info(sumFunc(10, 10));


Salin selepas log masuk

Nilai pulangan fungsi:

Gunakan pulangan untuk menjana nilai pulangan Jika tiada pulangan, fungsi itu kembali tidak ditentukan

 function func() {
 }
 console.info(func()); //undefined
 function func2() {
   return; //空的返回语句
 }
 console.info(func2()); //undefined

Salin selepas log masuk

Lubang tersembunyi di balik:

 var func = function (x, y) {
   var sum = x + y;
   return {
     value : sum
   }
 }

Salin selepas log masuk
Tiada masalah dalam penulisan seperti ini: memanggil func(5,5) mengembalikan Objek {nilai: 10}

Walau bagaimanapun:

  var func = function (x, y) {
    var sum = x + y;
    return
    {
      value: sum
    };
  }
  console.info(func(5,5)); //undefined

Salin selepas log masuk
Jika pemulangan diikuti dengan pemulangan gerabak dan pertukaran baris,

Memanggil func(5,5) memaparkan undefined
Editor menambah koma bertitik selepas pemulangan untuk kami bagaimanapun, ia tidak berguna dalam kes ini.

Fungsi ialah objek:

  function add(x, y) {
    return x + y;
  }
  console.info(add(100, 200)); //300
  var other = add; //other和add引用同一函数对象
  console.info(other(300, 400)); //700
  console.info(typeof other);  //function
  console.info(add === other); //true

Salin selepas log masuk

Fungsi yang ditakrifkan bersarang:

Dalam fungsi, anda boleh menentukan fungsi lain.

  function outerFunc(a, b) {
    function innerFunc(x) {
      return x * x;
    }
    return Math.sqrt(innerFunc(a) + innerFunc(b));
  }
  console.info(outerFunc(3, 4)); //5

Salin selepas log masuk

Akses pembolehubah luaran:

Fungsi dalaman boleh mengakses pembolehubah dan parameter luaran.

 var globalStr = 'globalStr';
 function outerFunc2(argu) {
   var localVar = 100;
   function innerFunc2() {
     localVar++;
     console.info(argu + ":" + localVar + ":" + globalStr);
   }
   innerFunc2(); //hello:101:globalStr
 }
 outerFunc2("hello");

Salin selepas log masuk

Fungsi yang mengembalikan fungsi:

Kerana fungsi adalah objek, ia boleh digunakan sebagai nilai pulangan.

  function outerFunc(x) {
    var y = 100;
    return function innerFunc() {
      console.info(x + y);
    }
  }
  outerFunc(10)(); //110
Salin selepas log masuk
Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

Label berkaitan:
sumber:php.cn
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!