国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS原型解析

adam1q84 / 2640人閱讀

摘要:它通過給對象添加原型關系即給某個對象添加屬性實現一個關聯。里面的原型關系真的很復雜也很繞,如果只是很枯燥的講述各種關系,真的很難記住,在這里希望通過代碼和思維導圖組合的形式,對的原型進行一次深度的剖析和理解。

概述

JS中原型是為了實現代碼重用的一種仿類機制,不過它跟類又完全不同。它通過給對象添加原型關系(即給某個對象添加__proto__屬性)實現一個關聯。把共有的方法和屬性放到這個關聯上即實現了JS的繼承。簡單來說就是一種委托機制。

JS里面的原型關系真的很復雜也很繞,如果只是很枯燥的講述各種關系,真的很難記住,在這里希望通過代碼和思維導圖組合的形式,對JS的原型進行一次深度的剖析和理解。

代碼分析

首先,我們給出下面的一組關系代碼

function Test() {}

var t1 = new Test()
var t2 = {}
var t3 = new Number(1)

t1.__proto__ === Test.prototype
Test.__proto__ === Function.prototype
Test.prototype.__proto__ === Object.prototype
t2.__proto__ === Object.prototype
Number.__proto__ === Function. prototype
Math.__proto__ === Object.prototype 
t3.__proto__ === Number.prototype
Number.prototype.__proto__=== Object.prototype
導圖理解

下圖是根據上述關系繪制的思維導圖,方便大家理解。

總結

引擎會創建兩個對象Object.prototype和Function.prototype

用__proto__將Function.prototype和Object.prototype關聯

非函數對象可以通過__proto__找到Object.prototype

函數對象通過__proto__找到Function.prototype

函數的 prototype 是一個對象,該對象的__proto__指向Object.prototype

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/105472.html

相關文章

  • JS基礎-原型原型鏈真的不能一知半解

    摘要:原型鏈和對象的原型是對象實例和它的構造函數之間建立的鏈接,它的值是構造函數的。對象的原型根據上文提到的構造調用函數的時候會創建一個新對象,自動將的原型指向構造函數的對象。 showImg(https://segmentfault.com/img/remote/1460000020185197); JS的原型、原型鏈一直是比較難理解的內容,不少初學者甚至有一定經驗的老鳥都不一定能完全說清...

    changfeng1050 評論0 收藏0
  • 獨家解析Javascript原型繼承 - 之函數原型和AOP

    摘要:引子獨家解析原型繼承已經比較全面的分析了自定義函數類型,內置基本類和內置對象類型的的以及的原型鏈。鑒于函數是的一等公民,另辟新篇介紹函數的原型及其應用。函數本身也是對象,它遵循獨家解析原型繼承所描述的自定義函數類型對象的原型法則。 引子 獨家解析Javascript原型繼承已經比較全面的分析了自定義函數類型,JS內置基本類(undefined, null, bool, number, ...

    ispring 評論0 收藏0
  • JS那些奇怪的題目(2)

    摘要:屬性返回所屬函數的函數名稱。正確字符串如果格式錯誤構造函數返回的仍是一個的實例所以結果為第題解析一個的屬性就是參數的個數。的結果中國標準時間,獲得當前時間是個對象,是獲得當前時間是個字符串。 第23道 [1 < 2 < 3, 3 < 2 < 1] 解析:如果加上括號就清楚了許多。(1 < 2) < 3 => (true) < 3 => 1 < 3 => true(3 < 2) < 1 ...

    dinfer 評論0 收藏0
  • 獨家解析Javascript原型繼承

    摘要:面向對象實現代碼動物發聲汪汪喵喵調用代碼動物發聲喵喵動物發聲汪汪當要增加一種動物時,只需增加一個繼承,不會影響其他已有的動物邏輯。所以的繼承和的原型繼承,可謂殊途同歸。 傳統面向對象的繼承和多態 我們知道C++/Java/C#等面向對象語言,都原生地支持類的繼承。繼承的核心作用大抵是創建一個派生類,并使其復用基本類(即父類)的字段和/或方法。并且派生類可以重寫基本類的方法。這樣基本類和...

    verano 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<