一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

javascript匿名函數的用法

時(shí)間:2024-09-13 21:24:35 JavaScript 我要投稿
  • 相關(guān)推薦

javascript匿名函數的用法

  摘要:

  本文講解的是javascript最基礎也是最重要的東西--函數,之所以寫(xiě)這篇文章,是因為面試的時(shí)候問(wèn)到了,也算是溫故而知新了。

  先上個(gè)例子,如果你看懂了,說(shuō)明你已經(jīng)理解了本文要講的。

  復制代碼 代碼如下:var f = (function() {

  function f() {return 10;}

  return f();

  function f() {return 20;}

  var f = 30;

  })();

  console.log(f);

  javascript高級程序設計中這樣描述函數--可以封裝任意多條語(yǔ)句,而且可以在任何地方、任何時(shí)候調用執行。之前介紹過(guò)了strict mode,嚴格模式對函數有一些限制:

 、 不能把函數命名為eval或arguments

 、 不能把參數命名為eval或arguments

 、 不能出現兩個(gè)命名參數同名的情況

  發(fā)生以上情況就會(huì )導致語(yǔ)法錯誤,代碼無(wú)法執行。

  函數定義

  函數定義分為三種

  1、構造函數

  復制代碼 代碼如下:var fun = new Funciton();

  2、普通定義

  復制代碼 代碼如下:function fun() {}

  3、函數式定義

  復制代碼 代碼如下:var fun = function() {};

  這三種方式都可以定義函數fun。

  參數

  函數不介意傳遞進(jìn)來(lái)多少個(gè)參數,也不在乎傳進(jìn)來(lái)的參數是什么數據類(lèi)型。即便你定義的函數只接收兩個(gè)參數,在調用這個(gè)函數時(shí)也未必一定要傳遞兩個(gè)參數?梢詡鬟f一個(gè)、三個(gè)甚至不傳遞參數。原因是參數在內部是用一個(gè)數組來(lái)表示的。在函數體內可以通過(guò)arguments對象來(lái)訪(fǎng)問(wèn)參數數組,舉個(gè)例子

  復制代碼 代碼如下:function sayHi() {

  alert("Hello " + arguments[0] + "," + arguments[1]);

  }

  通過(guò)訪(fǎng)問(wèn)arguments對象的length屬性來(lái)獲知有多少個(gè)參數。函數的length會(huì )返回函數的參數個(gè)數。

  注意:所有參數傳遞的都是值,不可能通過(guò)引用傳遞參數。

  函數不能重載,只能重寫(xiě)

  如果定義了兩個(gè)名字相同的函數,則該名字只屬于最后定義的函數,舉個(gè)例子:

  復制代碼 代碼如下:

  function add(num) {

  return num + 100;

  }

  function add(num) {

  return num + 200;

  }

  var result = add(100) //300

  注意:函數在執行完return語(yǔ)句之后停止并立即退出。

  函數種類(lèi)

  函數分為兩種一種是有名函數,另一種是匿名函數。例如下面的有名函數

  復制代碼 代碼如下:function fun() {

  }

  如果調用的話(huà),只需要fun()就可以。

  匿名函數,顧名思義就是沒(méi)有函數名。例如

  function() {}

  函數調用是通過(guò)函數名來(lái)調用,匿名函數怎么調用呢?一種就是將匿名函數賦給一個(gè)變量,讓這個(gè)變量充當函數名。另一種就是用()來(lái)調用,例如下面三種方法

  1、(function() {return;}());

  2、(function() {return;})();

  3、function() {return;}();

  例子:

  復制代碼 代碼如下:

  (function(x, y) {

  alert(x + y);

  })(2,3);

  //alert(5)

  2和3將會(huì )作為參數傳遞給x和y

  下面就來(lái)講講最上面的例子,這個(gè)例子里面涉及到閉包,后面會(huì )說(shuō)

  首先定義一個(gè)變量f,然后賦值一個(gè)匿名函數,這里呢需要注意一點(diǎn)函數里所有變量的定義都會(huì )被前置,所以匿名函數里的執行順序是

  復制代碼 代碼如下:

  var f = (function() {

  var f = 30;

  function f() {return 10;}

  function f() {return 20;}

  return f();

  })();

  外面的變量f和里面的變量f不在同一個(gè)作用域內(閉包),所以互不影響。因為函數不能重載,所以外面變量f=(function f() {return 20;})();,所以最終輸出的是20。

【javascript匿名函數的用法】相關(guān)文章:

Javascript函數的定義和用法分析08-15

JavaScript中常見(jiàn)的字符串操作函數及用法07-24

Javascript的this用法簡(jiǎn)述08-15

淺析jQuery 遍歷函數javascript08-06

Javascript中typeof 用法歸納09-27

javascript分析運算符用法08-07

JavaScript中push(),join() 函數實(shí)例詳解09-05

最常用的20個(gè)javascript方法函數09-10

JavaScript日期時(shí)間格式化函數08-29

關(guān)于asp 的常用函數用法10-11

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看