關於JS閉包的介紹

不言
發布: 2018-07-05 17:46:06
原創
1349 人瀏覽過

這篇文章主要介紹了關於JS閉包的介紹,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

一、作用域

var x = 0 //全局变量 x var y = 10 //全局变量 y var fun1 = function(){ var x = 1 //fun1函数局部变量 x console.log(x++) console.log(y) } fun1() //输出 1 10 函数内可以访问函数上级的变量 console.log(x) //输出0 函数外部不能调用函数内部的局部变量
登入後複製

二、閉包

 var x = 0 //全局变量 x var fun1 = function(){ var x = 1 //fun1函数局部变量 x function fun2() { console.log(x++) //当x = 1时 x++ = x ; ++x = x+1 } return fun2 //此时fun2就是一个闭包 } var run1 = fun1() run1() //输出 1 run1() //输出 2 run1是函数是引用类型,上一步运行run1将变量x改变进而影响这步的输出 var run2 = run1 run2() //输出 3 因为run2 = run1 run1和run2是函数属于引用类型 所以共用一个作用域链 run2() //输出 4 var run3 = fun1() run3() //输出 1 这里不是5 run3有自己的作用域链 run3() //输出 2 console.log(x) //输出 0
登入後複製

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

關於JS 繼承的介紹

以上是關於JS閉包的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!