原文:深入理解JavaScript系列(14):作用域鏈(Scope Chain)

前言 在第 章關於變量對象的描述中,我們已經知道一個執行上下文 的數據 變量 函數聲明和函數的形參 作為屬性存儲在變量對象中。 同時我們也知道變量對象在每次進入上下文時創建,並填入初始值,值的更新出現在代碼執行階段。 這一章專門討論與執行上下文直接相關的更多細節,這次我們將提及一個議題 作用域鏈。 定義 如果要簡要的描述並展示其重點,那么作用域鏈大多數與內部函數相關。 我們知道,ECMAScrip ...

2012-01-18 09:35 36 52247 推薦指數:

查看詳情

深入理解javascript原型和閉包(14)——從【自由變量】到【作用域

先解釋一下什么是“自由變量”。 在A作用域中使用的變量x,卻沒有在A作用域中聲明(即在其他作用域中聲明的),對於A作用域來說,x就是一個自由變量。如下圖 如上程序中,在調用fn()函數時,函數體中第6行。取b的值就直接可以在fn作用域中取,因為b就是在這里定義的。而取x的值時,就需要到另一 ...

Thu Sep 25 22:50:00 CST 2014 25 47357
深入理解JavaScript作用域作用域

前言 JavaScript 中有一個被稱為作用域(Scope)的特性。雖然對於許多新手開發者來說,作用域的概念並不是很容易理解,本文我會盡我所能用最簡單的方式來解釋作用域作用域,希望大家有所收獲! 作用域(Scope) 1. 什么是作用域 作用域是在運行時代碼中的某些特定部分中變量 ...

Fri Mar 15 18:06:00 CST 2019 1 4345
深入理解javascript作用域系列第四篇——塊作用域

前面的話   盡管函數作用域是最常見的作用域單元,也是現行大多數javascript最普遍的設計方法,但其他類型的作用域單元也是存在的,並且通過使用其他類型的作用域單元甚至可以實現維護起來更加優秀、簡潔的代碼,比如塊作用域。隨着ES6的推廣,塊作用域也將用得越來越廣泛。本文是深入理解 ...

Mon Jul 25 05:26:00 CST 2016 4 3641
js對象系列【二】深入理解js函數,詳解作用域作用域

這次說一下對象具體的一個實例:函數,以及其對應的作用域作用域。簡單的東西大家查下API就行了,這里我更多的是分享自己的理解與技巧。對於作用域作用域,相信絕大多數朋友看了我的分享都能基本理解,少數人看完之后再努力思考思考,基本也就懂了。最后說一下,不合理的地方,歡迎批評指正。 函數調用 ...

Tue Feb 27 05:03:00 CST 2018 0 1255
深入理解javascript作用域系列第五篇——一張圖理解執行環境和作用域

前面的話   對於執行環境(execution context)和作用域(scope)並不容易區分,甚至很多人認為它們就是一回事,只是高程和犀牛書關於作用域的兩種不同翻譯而已。但實際上,它們並不相同,卻相互糾纏在一起。本文先用一張圖開宗明義,然后進行術語的簡單解釋,最后根據圖示內容進行詳細 ...

Mon Aug 01 04:10:00 CST 2016 13 3733
深入理解javascript作用域系列第三篇——聲明提升(hoisting)

前面的話   一般認為,javascript代碼在執行時是由上到下一行一行執行的。但實際上這並不完全正確,主要是因為聲明提升的存在。本文是深入理解javascript作用域系列第三篇——聲明提升(hoisting) 變量聲明提升   直覺上,會認為是undefined ...

Sun Jul 24 23:17:00 CST 2016 2 3027
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM