午夜视频在线观看区二区-午夜视频在线观看视频-午夜视频在线观看视频在线观看-午夜视频在线观看完整高清在线-午夜视频在线观看网站-午夜视频在线观看亚洲天堂

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

JS普通函數與箭頭函數的區別

freeflydom
2025年2月19日 10:53 本文熱度 655

作用域

在討論箭頭函數與普通函數的區別之前,我們需要先討論一下作用域的概念。作用域分為:全局作用域,局部作用域,塊級作用域

  • 全局作用域
    •   全局作用域是在整個代碼中都可訪問的作用域。
  • 局部作用域
    •   局部作用域一般代指函數作用域(Function Scope),它是在函數內部聲明的作用域,函數內部的變量和函數只能在函數內部訪問,外部無法直接訪問
  • 塊級作用域
    •   塊級作用域是在代碼塊(通常是由大括號{}包裹起來的部分)內聲明的作用域。比如if(){...}、for(...){...}、try{...}等
  • 示例
    <script type="text/javascript">
            // 全局作用域
            const global_a="我是全局作用域";
            const b=function()
            {
                const local_b="我是局部作用域";
                try{
                    const block_c="我是塊級作用域";
                    console.log(block_c);
                }
                catch(ex)
                {
                }
                console.log(global_a);
                console.log(local_b);
            }
            b();
        </script>

     

箭頭函數與普通函數的區別

 

  1. 語法的不同

    • 箭頭函數語法:箭頭函數由 小括號()、箭頭=》、大括號{}組成,例如(x)=>{ return 2*x;},  (x)=> 2*x...  ,其中括號和大括號依情況可以省略
    • 普通函數語法:普通函數由關鍵字function、小括號、大括號{}組成,例如:function(x)=>{return 2*x;}
  2. this綁定的不同

    • 箭頭函數沒有自己的this綁定,它會繼承外層作用域的this值(繼承規則:向外層作用域中, 一層層查找this, 直到有this的定義)。而普通函數的this值是根據調用時的上下文決定的。這里給出一些示例
      • <div>
                <button id="bt1">利用箭頭函數構造事件處理函數</button>
                <button id="bt2">利用普通函數構造事件處理函數</button>
            </div>
            <!-- 箭頭函數沒有自己的this綁定,它會繼承外層作用域的this值。而普通函數的this值是根據調用時的上下文決定的 -->
            <script type="text/javascript">
                const bt1 = document.querySelector("#bt1");
                const bt2 = document.querySelector("#bt2");
                // 這里有兩個點擊事件,一個綁定的事件處理函數為普通函數,一個為箭頭函數
         
                bt2.addEventListener("click", function() {
                    //這里的this是id="bt2",this指向調用這個函數的對像
                    console.log(this);
                });
         
                bt1.addEventListener("click", () => {
                    //這里的this是window,箭頭函數的this指向最近的外層作用域中的this所指對象
                    console.log(this);
                });
            </script>
        <div>
                <button id="bt1">利用箭頭函數構造事件處理函數</button>
                <button id="bt2">利用普通函數構造事件處理函數</button>
            </div>
            <!-- 箭頭函數沒有自己的this綁定,它會繼承外層作用域的this值。而普通函數的this值是根據調用時的上下文決定的 -->
            <script type="text/javascript">
                const obj = {
                    a() {
                        setTimeout(function() {
                            //因為是window對象調用了定時函數,所以這里的this是window
                            console.log(this);
                        })
                    },
                    b() {
                        setTimeout(() => {
                            //因為箭頭函數里的this指向了最近的外層函數作用域中,所以這里的this是obj對象
                            console.log(this);
                        })
                    }
                }
                obj.a(); // 打印出 Window
                obj.b(); // 打印出 當前對象obj
            </script>

         

  3. 構造函數:箭頭函數不能用作構造函數,不能使用new關鍵字實例化對象。普通函數可以被用作構造函數創建對象實例

  4. arguments對象:箭頭函數沒有自己的arguments對象,它會繼承外層作用域的arguments對象。普通函數則會創建自己的arguments對象

  5. 箭頭函數沒有原型屬性(prototype)

  6. 箭頭函數不能通過call()、apply()或bind()方法來改變this的指向

總結

普通函數比較靈活,適用于各種場景,包括作為構造函數、改變this指向等。而箭頭函數更適合用于簡單的函數表達式和回調函數,需要根據具體的使用場景和需求來選擇使用箭頭函數還是普通函數。

轉自https://www.cnblogs.com/smallstone/p/18106142


該文章在 2025/2/19 10:56:07 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产在线观看一区二区三区 | 国产91高清免费 | 国产女同无遮挡互慰高潮视频 | 国产精品美女啪啪视频诱惑 | 国产精品欧美日韩视频一区 | 精品人妻一区二区三区有码 | 国产水蜜桃视频在线 | 国产v亚洲v天堂无码流 | 国产精品九九视频 | 国产不卡精品视频男人的天堂 | 国产精品欧美福利久久 | 国产a一级无 | 国产激情三级在线观看 | 国产高清在线精品一区a | 国产精品精品系列在线观看 | av无码中文一区二区三区四区 | 成人a级毛片免费观看av一区 | 韩国精品亚洲五月天高清 | 国产成人亚洲精品无码av软件 | 丰满人妻熟妇乱又精品视频 | 国产蜜桃扣扣传媒av性色 | 国产一区二区三区四区五区视频 | 国产精品无码播放 | 国产午夜福利短视频在线观看 | 国产超碰97人人做人 | 91桃色视频 | 国产91精选在线观看导航 | 69久久国产露脸精品国产 | 国产美女视频免费的黄片 | 国产一级a级免费视频 | 丰满人妻一区二区三区46 | 国产这里有精品视频 | 国产一区二区女内射 | 二区三区手机在线观看 | 91麻豆产精品久久久 | 国产交换一区二区三区 | 国产精品另类激情久久久免 | 国产午夜精品自在自线专区 | 国产在线播放线91免费 | av无码播放一区二区三区 | 国产精品青草久久久久99 |