【學習筆記】深入理解js原型和閉包(17)——補this
本文對《深入理解js原型和閉包(10)——this》一篇進行補充,原文連結:https://www.cnblogs.com/lauzhishuai/p/10078307.html
原文中,講解了在javascript中this的各個情況,寫完之後發現還落下一種情況,就此補充。
原文中this的其中一種情況是建構函式的,具體的內容可以參考原文,此處不再贅述。
要補充的內容是,在建構函式的prototype中,this代表著什麼。
如上程式碼,在Fn.prototype.getName函式中,this指向的是f1物件。因此可以通過this.name獲取f1.name的值。
其實,不僅僅是建構函式的prototype,即便是在整個原型鏈中,this代表的也都是當前物件的值。
---------------------------------------------------------------------------
本文已更新到《深入理解js原型和閉包》的目錄更多內容可參考《深入理解js原型和閉包》
相關推薦
【學習筆記】深入理解js原型和閉包(17)——補this
本文對《深入理解js原型和閉包(10)——this》一篇進行補充,原文連結:https://www.cnblogs.com/lauzhishuai/p/10078307.html 原文中,講解了在javascript中this的各個情況,寫完之後發現還落下一種情況,就此補充。 原文中thi
【學習筆記】深入理解js原型和閉包(3)——prototype原型
既typeof之後的另一位老朋友! prototype也是我們的老朋友,即使不瞭解的人,也應該都聽過它的大名。如果它還是您的新朋友,我估計您也是javascript的新朋友。 在咱們的第一節(深入理解js原型和閉包(1)——一切皆是物件)中說道,函式也是一種物件。他也是屬性的集合,你也可以
【學習筆記】深入理解js原型和閉包(8)——簡述【執行上下文】上
什麼是“執行上下文”(也叫做“執行上下文環境”)?暫且不下定義,先看一段程式碼: 第一句報錯,a未定義,很正常。第二句、第三句輸出都是undefined,說明瀏覽器在執行console.log(a)時,已經知道了a是undefined,但卻不知道a是10(第三句中)。 在一段js程式碼拿過來真正一句一
【學習筆記】深入理解js原型和閉包(9)—— 簡述【執行上下文】下
繼續上一篇文章(https://www.cnblogs.com/lauzhishuai/p/10078231.html)的內容。 上一篇我們講到在全域性環境下的程式碼段中,執行上下文環境中有如何資料: 變數、函式表示式——變數宣告,預設賦值為undefined; this——賦值; 函式宣告
【學習筆記】深入理解js原型和閉包(11)——執行上下文棧
繼續上文的內容。 執行全域性程式碼時,會產生一個執行上下文環境,每次呼叫函式都又會產生執行上下文環境。當函式呼叫完成時,這個上下文環境以及其中的資料都會被消除,再重新回到全域性上下文環境。處於活動狀態的執行上下文環境只有一個。 其實這是一個壓棧出棧的過程——執行上下文棧。如下圖: 可
【學習筆記】深入理解js原型和閉包(12)——簡介【作用域】
提到作用域,有一句話大家(有js開發經驗者)可能比較熟悉:“javascript沒有塊級作用域”。所謂“塊”,就是大括號“{}”中間的語句。例如if語句: 再比如for語句: 所以,我們在編寫程式碼的時候,不要在“塊”裡面宣告變數,要在程式碼的一開始就宣告好了。以避免發生歧義。如: &nbs
【學習筆記】深入理解js原型和閉包(15)——閉包
前面提到的上下文環境和作用域的知識,除了瞭解這些知識之外,還是理解閉包的基礎。 至於“閉包”這個詞的概念的文字描述,確實不好解釋,我看過很多遍,但是現在還是記不住。 但是你只需要知道應用的兩種情況即可——函式作為返回值,函式作為引數傳遞。 第一,函式作為返回值 如上程式碼,bar函式作為返回值,賦
【學習筆記】深入理解js原型和閉包(18)——補充:上下文環境和作用域的關係
本系列用了大量的篇幅講解了上下文環境和作用域,有些人反映這兩個是一回兒事。本文就用一個小例子來說明一下,作用域和上下文環境絕對不是一回事兒。 再說明之前,咱們先用簡單的語言來概括一下這兩個的區別。 00 上下文環境: 可以理解為一個看不見摸不著的物件(有若干個屬性),雖然看不見
深入理解javascript原型和閉包(14)——從【自由變數】到【作用域鏈】
https://www.cnblogs.com/wangfupeng1988/p/3994065.html 重點: var x = 10; function fn(){ console.log(x); } function show(f){ var x = 20; f();
深入理解javascript原型和閉包(轉)
原型鏈 面向 type www. 作用域 url tle das 經歷 深入理解javascript原型和閉包(完結) 說明: 該教程繞開了javascript的一些基本的語法知識,直接講解javascript中最難理解的兩個部分,也是和其他主流面向對
深入理解javascript原型和閉包(3)——prototype原型
scrip 理解 隱藏 函數 col java 再看 深入理解java blog 上文中提到對象是函數創建得,而函數也是一種對象。對象就是屬性的集合,沒有方法。 每個函數都有一個屬性——prototype。 這個prototype的屬性值是一個對象(屬性的集合),默認有一個
深入理解javascript原型和閉包(5)——instanceof
怪異 都是 ava type col function 深入理解java 為什麽 bject 對於值類型來說,可以用typeof判斷,但typeof判斷引用類型的時候返回值只有object/function,並不知道到底是哪一個。這個時候就要用到instance。例如 上
深入理解javascript原型和閉包(12)——閉包
執行環境 分享圖片 script com 活動 時有 mage ava 五步 閉包的官方定義時有權訪問另一個函數作用域中的變量的函數。 閉包有兩種用法:函數作為返回值,函數作為參數傳遞 第一:函數作為返回值 上面代碼中,bar函數作為fn函數的返回值,賦值給了變量f1,因
教程推薦:深入理解javascript原型和閉包(完結)
分享一些乾貨…… 說明: 該教程繞開了javascript的一些基本的語法知識,直接講解javascript中最難理解的兩個部分,也是和其他主流面嚮物件語言區別最大的兩個部分——原型和閉包,當然,肯定少不了原型鏈和作用域鏈。幫你揭開javascript最神祕的面紗。 為什麼要偏偏
深入理解javascript原型和閉包(完結)
https://www.cnblogs.com/wangfupeng1988/p/3977924.html 說明: 該教程繞開了javascript的一些基本的語法知識,直接講解javascript中最難理解的兩個部分,也是和其他主流面嚮物件語言區別最大的兩個部分——原型和閉包,當然,肯
深入理解javascript原型和閉包(15)——閉包
http://www.cnblogs.com/wangfupeng1988/p/3994065.html 前面提到的上下文環境和作用域的知識,除了瞭解這些知識之外,還是理解閉包的基礎。 至於“閉包”這個詞的概念的文字描述,確實不好解釋,我看過很多遍,但是現在還是記不
深入理解javascript原型和閉包(1)——一切都是對象
更新 心理 兩個 生活 更多 fine blank 下回 weibo “一切都是對象”這句話的重點在於如何去理解“對象”這個概念。 ——當然,也不是所有的都是對象,值類型就不是對象。 首先咱們還是先看看javascript中一個常用的運算符——typeof。typeof
深入理解javascript原型和閉包(6)——繼承
reac __proto__ 區分 深入 app mooc 屬性 lan 裏來 為何用“繼承”為標題,而不用“原型鏈”? 原型鏈如果解釋清楚了很容易理解,不會與常用的java/C#產生混淆。而“繼承”確實常用面向對象語言中最基本的概念,但是java中的繼承與javascri
深入理解javascript原型和閉包
函式就是物件的一種,因為通過instanceof函式可以判斷。函式就是物件的一種,因為通過instanceof函式可以判斷。 var fn = function () { }; console.log(fn instanceof Object); // tru
【學習筆記】建立模式之原型模式
在某些應用程式中,某些物件(一種類別)比較複雜,且其建立過程比較複雜,並且我們需要頻繁使用到這些物件。如果我們一直使用new的方式來建立這些物件,會導致程式效率低下。 如果我們預先建立好該物件(即原型),通過該物件的自我複製(克隆)得到物件例項,從而提高程式碼效