亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在JavaScript中使用匿名函數

發布時間:2021-01-04 15:06:50 來源:億速云 閱讀:183 作者:Leah 欄目:web開發

怎么在JavaScript中使用匿名函數?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一般函數:

function show1(name){
    alert(name); //打印:zhangsan
  }
show1("zhangsan");

匿名函數:

var show2 = function (name) {
    alert(name); //打印:張三
  }
show2("張三");

上面2種定義函數的區別:

1.我們知道所有的function都會在window對象里

  function show1(name){
    alert(name); //打印:張三
  }
  window.show1("張三");

即使在函數定義之前調用

  window.show1("張三");
  function show1(name){
    alert(name); //打印:張三
  }

這是因為這種”有名字”的函數在JS引擎初始化的時候就加載到作用域里面

2.如果是匿名函數

  window.show2("李四");
  var show2 = function (name) {
    alert(name); //打印:李四
  }

控制臺會打印:TypeError: window.show2 is not a function

二、如果我們需要合并上面2個函數

<script>
  function show(name) {
    return function () {
      alert(name); //內部函數是可以調用外層的變量的
    }
  }
  show("王五");
</script>

猜猜會打印什么?什么也沒有,也不會報錯。這是因為執行show()只是返回了一個函數本身,并沒有執行這個函數。

show("王五")();

這樣執行,就打印:王五

如果里面的函數也要傳入變量

<script>
  function show(name) {
    return function (age) {
      alert(name); //打印:王五
      alert(age); //打印:18
    }
  }
  show("王五")(18);
</script>
<script>
  function show(name) {
    return function (name) {
      alert(name);
    }
  }
  show("王五")(18);
</script>

猜猜是打印“王五”還是“18”?只會打印“18”。

三、匿名函數的自執行

<script>
  (function (name) {
    alert(name);  //打印:哈哈
  })("哈哈")
</script>

以上是推薦的寫法。

其他寫法:

  -function (name) {
    alert(name);  //打印:哈哈
  }("哈哈")
  +function (name) {
    alert(name);  //打印:哈哈
  }("哈哈")
  !function (name) {
    alert(name);  //打印:哈哈
  }("哈哈")
  [function (name) {
    alert(name);  //打印:哈哈
  }("哈哈")]
  new function (name) {
    alert(name);  //打印:哈哈
  }("哈哈")
  ~function (name) {
    alert(name);  //打印:哈哈
  }("哈哈")
  void function (name) {
    alert(name);  //打印:哈哈
  }("哈哈")

看完上述內容,你們掌握怎么在JavaScript中使用匿名函數的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉安市| 于都县| 大同市| 怀宁县| 铁岭县| 安塞县| 河源市| 绍兴县| 蓬安县| 凌源市| 峡江县| 长顺县| 神池县| 米易县| 西吉县| 土默特右旗| 连城县| 临安市| 锦屏县| 阳原县| 芮城县| 霍林郭勒市| 塔河县| 梅州市| 磐安县| 托克托县| 宁城县| 宁强县| 金昌市| 连南| 临泽县| 江陵县| 阿鲁科尔沁旗| 衡山县| 朝阳区| 黎平县| 广德县| 军事| 谢通门县| 泰顺县| 灵川县|