閉包不滿足鏈式作用域結構嗎,day10作用域與閉包

 2023-10-07 阅读 23 评论 0

摘要:? 該特性可以用來取代if分支 函數嵌套 名稱空間與作用域什么是名稱空間?存放名字和值綁定關系的地方 名稱空間分三類內置名稱空間:存放解釋器自帶的名字,在解釋器啟動時生效,關閉則失效全局名稱空間:問價局部名稱空間:存放函數內容

?

該特性可以用來取代if分支

函數嵌套

名稱空間與作用域
什么是名稱空間?
存放名字和值綁定關系的地方

名稱空間分三類
內置名稱空間:存放解釋器自帶的名字,在解釋器啟動時生效,關閉則失效
全局名稱空間:問價
局部名稱空間:存放函數內容的名字(函數的參數以及函數內的名字都存放于局部名稱空間,在函數調用時臨時生效,函數結束則失效)
名稱空間的加載順序
加載順序:內置-全局-局部
查找名字:局部-全局-內置 需要找變量的代碼所在的位置開始向外層找起

閉包不滿足鏈式作用域結構嗎。作用域
全局作用域:
包含的是內置名稱空間與全局名稱空間的名字
特點
1、在任何位置都能夠訪問到
2、該范圍內的名字會伴隨程序整個生命周期
局部作用域:
包含的是局部名稱空間的名字
特點
1、只能在函數內使用
2、調用函數時生效,調用結束時失效

函數對象
函數是第一類對象,即函數可以當作數據傳遞
1 可以被引用
2 可以當作參數傳遞
3 返回值可以是函數
4 可以當作容器類型的元素

閉包(重要)
閉:定義在函數內部的函數
作用域關系在函數定義階段就規定死了,與調用關系無關
閉包函數
定義在函數內部的函數,并且該函數包含對外部函數作用域中名字的引用
為函數體傳值的方式
方式一:將值以參數的形式的傳入
方式二:

#閉包的意義:返回的函數對象,不僅僅是一個函數對象,在該函數外還包裹了一層作用域,這使得,該函數無論在何處調用,優先使用自己外層包裹的作用域

裝飾器
裝飾器就是閉包函數的一種應用場景
#開放封閉原則:對修改封閉,對擴展開放
什么是裝飾器
裝飾器他人的器具,本身可以是任意可調用對象,被裝飾者也可以是任意可調用對象。
強調裝飾器的原則:1 不修改被裝飾對象的源代碼 2 不修改被裝飾對象的調用方式
裝飾器的目標:在遵循1和2的前提下,為被裝飾對象添加上新功能
三 裝飾器的使用

@timmer是什么
為什么調用代碼完全沒有調用閉包,怎么實現調用閉包的代碼

js塊級作用域。?

轉載于:https://www.cnblogs.com/shanjinghao/p/8665932.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/125591.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息