摘要:看了高級程序設計中關于對象的介紹,記錄一下對于其中有些地方的疑惑。
看了《JavaScript高級程序設計》中關于對象的介紹,記錄一下對于其中有些地方的疑惑。
使用構造函數創建對象時,prototype中如果定義一個屬性指向函數,在函數中引用this,為什么this是指向構造函數而不是prototype對象?
試驗:
function SuperType() { this.property = "value in SuperType" this.obj = { testThis: function() { console.log(this) console.log(this.testValue) console.log(this.property) }, testValue: "value in SuperType.obj", } } SuperType.prototype.getSuperValue = function() { console.log(this) return this.property } const test = new SuperType() test.obj.testThis() // output: // { testThis: [Function: testThis], testValue: "test" } // value in SuperType.obj // undefined r = test.getSuperValue() console.log(r) // output: // SuperType { // property: true, // obj: { testThis: [Function: testThis], testValue: "value in SuperType.obj" } // } // value in SuperType
按照書上的講解,test實例的結構應該是如下的(偽代碼):
person = { __proto__: { constructor: SuperType, getSuperValue: function() { ... }, }, obj: { testThis: function() { ... }, testValue: "value in SuperType.obj", }, property: "value in SuperType", }
__proto__既然和obj同一層級的,那getSuperValue應該就和testValue是有同樣的表現才對呀,為什么getSuperValue可以讀取到property的值呢?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/89488.html
摘要:前言原型這個概念在這門語言中是一個核心關鍵的知識點,但是你是否真的已經完全理解透徹了呢可能我個人的理解能力較差,因此經過多次翻閱書籍和實踐我才真正了解原型,所以記錄下來以加深理解,也以便日后深入探討。 前言 原型這個概念在JavaScript這門語言中是一個核心關鍵的知識點,但是你是否真的已經完全理解透徹了呢?可能我個人的理解能力較差,因此經過多次翻閱書籍和實踐我才真正了解原型,所以記...
摘要:是的,始終指向調用對象,調用對象,這個很重要,的靜態成員是沒有的概念的。所以和,的區別是返回一個明確的新函數,和立即執行了。 1. 問題引入 function A() {} A.prototype.fna = function() { console.log(this); } 我的問題是 fna 的 this 是指向哪里的? var a = new A(); a.fna(); ...
摘要:而作為構造函數,需要有個屬性用來作為以該構造函數創造的實例的繼承。 歡迎來我的博客閱讀:「JavaScript 原型中的哲學思想」 記得當年初試前端的時候,學習JavaScript過程中,原型問題一直讓我疑惑許久,那時候捧著那本著名的紅皮書,看到有關原型的講解時,總是心存疑慮。 當在JavaScript世界中走過不少旅程之后,再次萌發起研究這部分知識的欲望,翻閱了不少書籍和資料,才搞懂...
摘要:聲明設計模式系列是來自設計模式與開發這本書的讀書筆記,會結合自身的理解和一些項目經驗做筆記,原書作者曾探前言什么是設計模式,設計模式就是在某種場合下對某個問題的一種解決方案。 聲明: 【JavaScript設計模式】 系列 是來自《JavaScript設計模式與開發》這本書的讀書筆記,會結合自身的理解和一些項目經驗做筆記,原書作者 曾探 前言 什么是設計模式,設計模式就是在某種場合下對...
摘要:本回內容介紹上一回聊到單例模式,做了一道題,內容不多,比較容易理解。這里其實還可以進一步優化,達到高聚類低耦合,這里工廠模式就告一段落了。 本回內容介紹 上一回聊到JS單例模式(singleton),做了一道題,內容不多,比較容易理解。介一回嘞,聊聊工廠模式,之前聊到過工廠模式,這回聊深入點兒,可能會比較抽象,不過好在實際開發中使用還算廣泛,理解起來會比較容易,開始咯: 1. 簡單工廠...
閱讀 1538·2021-11-04 16:10
閱讀 2774·2021-09-30 09:48
閱讀 2839·2019-08-29 11:31
閱讀 1578·2019-08-28 18:22
閱讀 3225·2019-08-26 13:44
閱讀 1319·2019-08-26 13:42
閱讀 2845·2019-08-26 10:20
閱讀 754·2019-08-23 17:00