摘要:被克隆的對象稱之為新對象的原型,新對象保存一個指向其原型的引用。一個對象是如何與其原型聯系起來的呢答對象的屬性指向其構造函數的。如何實現繼承呢使構造函數的等于另一個構造函數的一個實例這樣就使得繼承于。
眾所周知,在javascript這門動態類型語言中,是不存在如傳統靜態類型語言如c++或java中對類的支持的。后者是天生為面向對象編程而設計,其中涉及的一些概念如繼承、多態、函數重載在js中都不是被原生實現的。
然而,js也是可以實現面向對象編程的,一切都歸功于其原型編程范形特性。也就是說,一切數據類型都可以被看做是對象(js中還存在Number,String,Boolean這樣的基本數據類型),要產生一個對象,不是通過用類進行實例化,而是克隆另一個對象。被克隆的對象稱之為新對象的原型,新對象保存一個指向其原型的引用。當調用新對象中的某個屬性時,如果不存在,則會順著原型鏈一直往上查找,直達Object.prototype這個js中的根對象為止,如不存在則為undefined。
注:js中的所有對象都是直接或者間接克隆Object.prototype, 這是一個空對象。
那么如何克隆/產生一個對象呢?
答: 在js中可以通過new func()的形式,這里的func是一個function,但這里并不作為普通的函數調用,而是作為一個構造器。而這個函數就是通過這個函數構造出來的對象的構造函數。
一個對象是如何與其原型聯系起來的呢?
答:對象的__proto__屬性指向其構造函數的prototype。
例如,var obj = new Object(); 那么就存在 obj.__porto__ === Object.prototype。
如何實現繼承呢?
(1)使構造函數A的prototype等于另一個構造函數B的一個實例(A.prototype = new B() ),這樣就使得A繼承于B。
(2)使用apply方法,使B函數能夠借用A函數:
var A = function( name ){ this.name = name; }; var B = function(){ A.apply( this, arguments ); }; B.prototype.getName = function(){ return this.name; }; var b = new B( "xiao" ); console.log( b.getName() );
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/80761.html
摘要:理解的函數基礎要搞好深入淺出原型使用原型模型,雖然這經常被當作缺點提及,但是只要善于運用,其實基于原型的繼承模型比傳統的類繼承還要強大。中文指南基本操作指南二繼續熟悉的幾對方法,包括,,。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。 怎樣使用 this 因為本人屬于偽前端,因此文中只看懂了 8 成左右,希望能夠給大家帶來幫助....(據說是阿里的前端妹子寫的) this 的值到底...
摘要:設計模式是以面向對象編程為基礎的,的面向對象編程和傳統的的面向對象編程有些差別,這讓我一開始接觸的時候感到十分痛苦,但是這只能靠自己慢慢積累慢慢思考。想繼續了解設計模式必須要先搞懂面向對象編程,否則只會讓你自己更痛苦。 JavaScript 中的構造函數 學習總結。知識只有分享才有存在的意義。 是時候替換你的 for 循環大法了~ 《小分享》JavaScript中數組的那些迭代方法~ ...
摘要:的翻譯文檔由的維護很多人說,阮老師已經有一本關于的書了入門,覺得看看這本書就足夠了。前端的異步解決方案之和異步編程模式在前端開發過程中,顯得越來越重要。為了讓編程更美好,我們就需要引入來降低異步編程的復雜性。 JavaScript Promise 迷你書(中文版) 超詳細介紹promise的gitbook,看完再不會promise...... 本書的目的是以目前還在制定中的ECMASc...
摘要:什么是里氏替換原則某個對象實例的子類實例應當可以在不影響程序正確性的基礎上替換它們。除了在編程語言層面,在前端實際工作中,你可能會聽到一個叫作的概念,這個概念我認為也是里氏替換原則的一直延伸。 這是理解SOLID原則,關于里氏替換原則為什么提倡我們面向抽象層編程而不是具體實現層,以及為什么這樣可以使代碼更具維護性和復用性。 什么是里氏替換原則 Objects should be rep...
摘要:前言月份開始出沒社區,現在差不多月了,按照工作的說法,就是差不多過了三個月的試用期,準備轉正了一般來說,差不多到了轉正的時候,會進行總結或者分享會議那么今天我就把看過的一些學習資源主要是博客,博文推薦分享給大家。 1.前言 6月份開始出沒社區,現在差不多9月了,按照工作的說法,就是差不多過了三個月的試用期,準備轉正了!一般來說,差不多到了轉正的時候,會進行總結或者分享會議!那么今天我就...
閱讀 3190·2021-11-10 11:35
閱讀 1295·2019-08-30 13:20
閱讀 1117·2019-08-29 16:18
閱讀 2131·2019-08-26 13:54
閱讀 2155·2019-08-26 13:50
閱讀 955·2019-08-26 13:39
閱讀 2473·2019-08-26 12:08
閱讀 1951·2019-08-26 10:37