摘要:原文經歷了上次的的六道坎發現編故事有點上癮,而且記憶效果也不錯哈哈,今天繼續嘮叨一下與的愛恨情仇。它是萬物的盡頭,繼承于虛無,為。接著由其衍生出第二神,另外一個,也就是。也估計是讓人引起誤解的源頭。所以接下來的問題就更容易了,比如。
原文:https://blog.crimx.com/2017/0...
經歷了上次的《JavaScript This 的六道坎》 發現編故事有點上癮,而且記憶效果也不錯哈哈,今天繼續嘮叨一下 prototype 與 __proto__ 的愛恨情仇。
先理解兩者的一個本質區別,prototype 是函數獨有的,是人為設定的;__proto__ 是所有對象都有的,是繼承的。
然后來看一個兩個神的故事:
首先在 ECMAScript 星球,萬物起源于 the Engineers,哦不,是一個叫 %ObjectPrototype% 的 intrinsic object,也就是 Object.prototype。它是萬物的盡頭,繼承于虛無, Object.prototype.__proto__ 為 null。
接著由其衍生出第二神,另外一個 intrinsic object %FunctionPrototype%,也就是 Function.prototype。于是有
Function.prototype.__proto__ === Object.prototype // true
Function.prototype 本身也是個函數對象,這是為了兼容 ES5。也估計是讓人引起誤解的源頭。但兩者還是不同的,這是個特殊的函數對象,它忽略參數總是返回 undefined,且沒有 [[Construct]] 內部方法。
搞清楚了這兩個 Ancient Gods 接下來就很容易了,相信也聽過“函數在 JS 里是一等公民”這類的說法,其實是因為它們都是 %FunctionPrototype% 的子民(這里不用 Function.prototype 是為了避免混淆,記得 prototype 是人為設定的),包括 Function 本身。
所以你可以看到,Object、Function、String、Number、Boolean 等等等的 __proto__ 都是 Function.prototype。
所以接下來的問題就更容易了,比如 Object instanceof Object。前面我們知道 Object.__proto__ 是 %FunctionPrototype%,而它的 __proto__ 是萬物之源 %ObjectPrototype%,恰好也是 Object.prototype,所以就是 true 啦。
其它的也是同理,舉一反三很簡單了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87256.html
摘要:先打開花千骨小說的目錄頁,是這樣的。網頁結構分析首先,目錄頁左上角有幾個可以提高你此次爬蟲成功后成就感的字眼暫不提供花千骨全集下載。打開盤查看花千骨文件。 知識就像碎布,記得縫一縫,你才能華麗麗地亮相。 1.Beautiful Soup 1.Beautifulsoup 簡介 此次實戰從網上爬取小說,需要使用到Beautiful Soup。Beautiful Soup為python的...
摘要:一場恩怨,一段紛爭,一段歷史。后來崛起,并內置了庫,從此一炮而紅。可見,前端大戰以的完勝而告終。無疑,在目前瀏覽器不完全兼容的情況下,提供的是操作的最佳選擇。然而社區的意見偏向于,是唯一選擇。的貢獻者認為,現狀不會改變。 這幾天更新我的之前寫的 Chrome 插件 ChromeSnifferPlus 可以探測正在使用的開源軟件或者 js 類庫,兩天的時間增加了 20 多個 js 庫的檢...
摘要:當然大多數情況下就是我們是在單線程下進行的操作,所以大多數情況下是建議用而不用的,就是速度的原因。 第三階段 JAVA常見對象的學習 StringBuffer和StringBuilder類 (一) StringBuffer類的概述 (1) 基本概述 下文以StringBuffer為例 前面我們用字符串做拼接,比較耗時并且也耗內存(每次都會構造一個新的string對象),而這種拼接操作又...
摘要:雖然性能極佳,而且提供了大量的特性,包括全文索引壓縮空間函數等,但不支持事務和行級鎖,而且最大的缺陷就是崩潰后無法安全恢復。 一 MyISAM 1.1 MyISAM簡介 MyISAM是MySQL的默認數據庫引擎(5.5版之前),由早期的 ISAM (Indexed Sequential Access Method:有索引的順序訪問方法)所改良。雖然性能極佳,而且提供了大量的特性,包括全...
摘要:雖然性能極佳,而且提供了大量的特性,包括全文索引壓縮空間函數等,但不支持事務和行級鎖,而且最大的缺陷就是崩潰后無法安全恢復。 Java面試通關手冊(Java學習指南,歡迎Star,會一直完善下去,歡迎建議和指導):https://github.com/Snailclimb/Java_Guide 一 MyISAM 1.1 MyISAM簡介 MyISAM是MySQL的默認數據庫引擎(5.5...
閱讀 1111·2021-11-23 09:51
閱讀 1076·2021-10-18 13:31
閱讀 2976·2021-09-22 16:06
閱讀 4263·2021-09-10 11:19
閱讀 2202·2019-08-29 17:04
閱讀 430·2019-08-29 10:55
閱讀 2477·2019-08-26 16:37
閱讀 3375·2019-08-26 13:29