說明: 該教程繞開了javascript的一些基本的語法知識,直接講解javascript中最難理解的兩個部分,也是和其他主流面向對象語言區別最大的兩個部分——原型和閉包,當然,肯定少不了原型鏈和作用域鏈。幫你揭開javascript最神秘的面紗。 為什么要偏偏要講這兩個知識點 ...
說明: 該教程繞開了javascript的一些基本的語法知識,直接講解javascript中最難理解的兩個部分,也是和其他主流面向對象語言區別最大的兩個部分——原型和閉包,當然,肯定少不了原型鏈和作用域鏈。幫你揭開javascript最神秘的面紗。 為什么要偏偏要講這兩個知識點 ...
前面提到的上下文環境和作用域的知識,除了了解這些知識之外,還是理解閉包的基礎。 至於“閉包”這個詞的概念的文字描述,確實不好解釋,我看過很多遍,但是現在還是記不住。 但是你只需要知道應用的兩種情況 ...
“一切都是對象”這句話的重點在於如何去理解“對象”這個概念。 ——當然,也不是所有的都是對象,值類型就不是對象。 首先咱們還是先看看javascript中一個常用的運算符——typeof。t ...
從下面目錄中可以看到,本系列有16篇文章,外加兩篇后補的,一共18篇文章。寫了半個月,從9月17號開始寫的。每篇文章更新時,讀者的反饋還是可以的,雖然不至於上頭條,但是也算是中規中矩,有看的人,也 ...
既typeof之后的另一位老朋友! prototype也是我們的老朋友,即使不了解的人,也應該都聽過它的大名。如果它還是您的新朋友,我估計您也是javascript的新朋友。 在咱們的第一節(深入理解javascript原型和閉包(1)——一切都是對象)中說道,函數也是一種對象。他也是 ...
注意:本文不是javascript基礎教程,如果你沒有接觸過原型的基本知識,應該先去了解一下,推薦看《javascript高級程序設計(第三版)》第6章:面向對象的程序設計。 上節已經提到,每個函數function都有一個prototype,即原型。這里再加一句話——每個對象都有一個 ...
前言 JavaScript 不包含傳統的類繼承模型,而是使用 prototypal 原型模型。 雖然這經常被當作是 JavaScript 的缺點被提及,其實基於原型的繼承模型比傳統的類繼承還要強大。實現傳統的類繼承模型是很簡單,但是實現 JavaScript 中的原型繼承則要困難 ...
上文(理解javascript原型和作用域系列(1)——一切都是對象)已經提到,函數就是對象的一種,因為通過instanceof函數可以判斷。 對!函數是一種對象,但是函數卻不像數組一樣——你可以說數組是對象的一種,因為數組就像是對象的一個子集一樣。但是函數與對象之間,卻不僅僅是 ...
又介紹一個老朋友——instanceof。 對於值類型,你可以通過typeof判斷,string/number/boolean都很清楚,但是typeof在判斷到引用類型的時候,返回值只有object ...
什么是“執行上下文”(也叫做“執行上下文環境”)?暫且不下定義,先看一段代碼: 第一句報錯,a未定義,很正常。第二句、第三句輸出都是undefined,說明瀏覽器在執行console.log(a ...