91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么在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

济宁市| 韶山市| 扶余县| 息烽县| 象州县| 高淳县| 布尔津县| 宿迁市| 芜湖县| 中阳县| 万山特区| 兖州市| 拉萨市| 平阳县| 海南省| 大化| 台中市| 太谷县| 原平市| 张家港市| 拜城县| 锡林浩特市| 招远市| 玉田县| 阿克| 灵宝市| 桓台县| 滁州市| 平武县| 新宁县| 开平市| 陈巴尔虎旗| 盘锦市| 瓦房店市| 巴彦县| 宝清县| 凭祥市| 桐柏县| 读书| 吉首市| 塘沽区|