原文:深入理解javascript原型和閉包(13)-【作用域】和【上下文環境】

上文簡單介紹了作用域,本文把作用域和上下文環境結合起來說一下,會理解的更深一些。 如上圖,我們在上文中已經介紹了,除了全局作用域之外,每個函數都會創建自己的作用域,作用域在函數定義時就已經確定了。而不是在函數調用時確定。 下面我們將按照程序執行的順序,一步一步把各個上下文環境加上。另外,對上下文環境不了解的朋友,可以去看看之前的兩篇文章: http: www.cnblogs.com wangfup ...

2014-09-25 08:18 20 42116 推薦指數:

查看詳情

深入理解javascript原型閉包(18)——補充:上下文環境作用域的關系

本系列用了大量的篇幅講解了上下文環境作用域,有些人反映這兩個是一回兒事。本文就用一個小例子來說明一下,作用域上下文環境絕對不是一回事兒。 再說明之前,咱們先用簡單的語言來概括一下這兩個的區別。 00 上下文環境: 可以理解為一個看不見摸不着的對象(有若干個屬性),雖然看不見摸不着 ...

Tue Sep 30 02:32:00 CST 2014 44 22297
深入理解javascript原型閉包(8)——簡述【執行上下文】上

什么是“執行上下文”(也叫做“執行上下文環境”)?暫且不下定義,先看一段代碼: 第一句報錯,a未定義,很正常。第二句、第三句輸出都是undefined,說明瀏覽器在執行console.log(a)時,已經知道了a是undefined,但卻不知道a是10(第三句中)。 在一段js代碼拿過來 ...

Tue Sep 23 01:49:00 CST 2014 32 62207
深入理解javascript原型閉包(14)——從【自由變量】到【作用域鏈】

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

Thu Sep 25 22:50:00 CST 2014 25 47357
深入理解javascript原型閉包(12)——簡介【作用域

提到作用域,有一句話大家(有js開發經驗者)可能比較熟悉:“javascript沒有塊級作用域”。所謂“塊”,就是大括號“{}”中間的語句。例如if語句: 再比如for語句: 所以,我們在編寫代碼的時候,不要在“塊”里面聲明變量,要在代碼的一開始就聲明好了。以避免發生歧義 ...

Thu Sep 25 01:10:00 CST 2014 9 41389
深入理解javascript原型閉包(9)——簡述【執行上下文】下

繼續上一篇文章(http://www.cnblogs.com/wangfupeng1988/p/3986420.html)的內容。 上一篇我們講到在全局環境下的代碼段中,執行上下文環境中有如何數據: 變量、函數表達式——變量聲明,默認賦值為undefined; this——賦值 ...

Tue Sep 23 16:43:00 CST 2014 25 47364
深入理解javascript原型閉包(11)——執行上下文

繼續上文的內容。 執行全局代碼時,會產生一個執行上下文環境,每次調用函數都又會產生執行上下文環境。當函數調用完成時,這個上下文環境以及其中的數據都會被消除,再重新回到全局上下文環境。處於活動狀態的執行上下文環境只有一個。 其實這是一個壓棧出棧的過程——執行上下文棧。如下圖: 可根據 ...

Wed Sep 24 05:26:00 CST 2014 12 43747
深入理解javascript作用域系列第五篇——一張圖理解執行環境作用域

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

Mon Aug 01 04:10:00 CST 2016 13 3733
理解上下文作用域

一直以來沒有對上下文(context)的定義,總有些模糊,沒有認真地總結過,聽到這個詞,會想到看過的“上下文是函數執行環境”,“上下文是this”,但真的讓自己去解釋還真說不上來,故趁今日有空總結溫故一番,有什么錯誤的,還望大家提出! 《javascript權威指南》里是第8章函數導讀頁里有這 ...

Sun Mar 06 01:00:00 CST 2016 1 9508
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM