亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于javascript中返回函數的案例

關于javascript中返回函數的案例

慕田峪9158850 2018-10-12 09:10:03
    function foo(){       var a=2;       function bar(){          //dosomething       }       return bar;    }    var baz=foo();    baz();在這段代碼中,返回了bar函數本身;如果把return bar更改為alert(bar),就會輸出:    function bar(){       //dosomething    }那么是不是可以認為,var baz=foo()等價于:    var baz=function bar(){       //dosomething    }有兩個疑問:代碼中的return bar,能夠返回函數本身么?最后這個等價函數,在形式上不是函數聲明,好像也不是函數表達式(函數表達式中的function應該是匿名的)這里該如何理解這種形式呢?還煩請大伙解惑!!補充:a、既然能寫成var baz=function bar(){//dosomething},根據這個函數目前所書寫的位置,那么現在bar()函數的下一個外包環境,就是全局環境。如果說法成立,那就會和bar在函數foo內部相互矛盾,也就是bar函數脫離了foo函數,出現在了全局環境中;那閉包豈不是不能形成??(閉包的概念:內部函數能夠訪問外部函數的變或函數。)b、如果說寫成var baz=function bar(){//dosomething}后,bar()函數還是存在于foo函數詞法作用域的內部,但是根據詞法作用域的查找規則,對bar的查找是不會進入foo函數的內部,那就應該無法調用baz();會出現報錯;而這里還能調用????
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 479 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號