摘要:上面這段代碼一般被用來判斷變量的類型,相信很多人都非常熟悉今天時(shí)用到上面這段代碼,突然想到方法,為啥兩者不一樣呢的并不是自有屬性,而是繼承屬性那究竟時(shí)繼承的誰呢,或者換句話說,時(shí)由什么構(gòu)造的呢為啥運(yùn)行上面這段代碼會(huì)提示原來執(zhí)行等同于執(zhí)行而且
Object.prototype.toString.call(something)
上面這段代碼一般被用來判斷變量的類型,相信很多人都非常熟悉
今天coding時(shí)用到上面這段代碼,突然想到 Object.toString 方法,為啥兩者不一樣呢
Object 的 toString 并不是自有屬性,而是繼承屬性
那 Object 究竟時(shí)繼承的誰呢,或者換句話說,Object 時(shí)由什么構(gòu)造的呢?
Object.toString.call([])
為啥運(yùn)行上面這段代碼會(huì)提示 Function.prototype.toString requires that "this" be a Function
console.log(Object.__proto__.constructor) // ? Function() { [native code] } Object.toString === Function.prototype.toString // true Object.__proto__ === Function.prototype // true Object instanceof Function // true
原來執(zhí)行 Object.toString.call([]) 等同于執(zhí)行 Function.prototype.toString([])
而且 Object 是由 Function 構(gòu)造的
那么 Function 又是由什么構(gòu)造的呢
console.log(Function.__proto__.constructor) // ? Function() { [native code] }
我們看到 Function 是由 Function 構(gòu)造的
那么是不是說 Function 就是繼承鏈的最頂層了呢? 答案肯定是 不是
Function.prototype.__proto__ === Object.prototype // true Function.__proto__.__proto__ === Object.prototype // true Object.__proto__.__proto__ === Object.prototype // true Function.prototype.constructor === Object // false
我們看到, Function.prototype 的 _proto__ 指向了 Object.prototype
我們之前說過, Function 繼承自 Function ,自然 Function.__proto__.__proto__ 是指向 Object.prototype 的
我們之前也說過, Object 繼承自 Function,所以Object.__proto__.__proto__ 也是指向 Object.prototype 的
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/90085.html
摘要:如果要理清原型和原型鏈的關(guān)系,首先要明確一下幾個(gè)概念中的所有東西都是對(duì)象,函數(shù)也是對(duì)象而且是一種特殊的對(duì)象中所有的東西都由衍生而來即所有東西原型鏈的終點(diǎn)指向?qū)ο蠖加幸粋€(gè)隱藏的屬性,他指向創(chuàng)建它的構(gòu)造函數(shù)的原型,但是有一個(gè)例外,指向的是。 首先要搞明白幾個(gè)概念: 函數(shù)(function) 函數(shù)對(duì)象(function object) 本地對(duì)象(native object) 內(nèi)置對(duì)象(bu...
摘要:遞歸閉包原型繼承本文主要講解理清一些函數(shù)常用的知識(shí)點(diǎn)遞歸閉包是什么閉包使用場(chǎng)景什么是原型和原型鏈如何實(shí)現(xiàn)繼承繼承的原理,原文。當(dāng)訪問一個(gè)對(duì)象上的屬性時(shí),先嘗試訪問自身上的屬性,再通過原型鏈嘗試訪問其構(gòu)造函數(shù)原型上的屬性。 遞歸、閉包、原型、繼承 本文主要講解、理清一些函數(shù)常用的知識(shí)點(diǎn):遞歸、閉包是什么、閉包使用場(chǎng)景、什么是原型和原型鏈、如何實(shí)現(xiàn)繼承、繼承的原理,原文。 遞歸 函數(shù)的遞歸...
摘要:是對(duì)象或者實(shí)例中內(nèi)置的,其指向的是產(chǎn)生該對(duì)象的對(duì)象的在瀏覽器中提供了讓我們可以訪問,通過的指向形成的一個(gè)鏈條,就稱做原型鏈,原型鏈的整個(gè)鏈路是實(shí)例對(duì)象構(gòu)造函數(shù)的的。 原型和原型鏈 原型prototype,在創(chuàng)建新函數(shù)的時(shí)候,會(huì)自動(dòng)生成,而prototype中也會(huì)有一個(gè)constructor,回指創(chuàng)建該prototype的函數(shù)對(duì)象。 __proto__是對(duì)象或者實(shí)例中內(nèi)置的[[proto...
摘要:他指示了一個(gè)對(duì)象的屬性,返回的將用來獲得該屬性對(duì)應(yīng)的值在上面的分析中,我們知道,當(dāng)傳入的是一個(gè)函數(shù)時(shí),還要經(jīng)過一個(gè)叫的內(nèi)置函數(shù)才能獲得最終的所以此處的必然是優(yōu)化回調(diào)的作用了。 開篇說明 對(duì)的,讓你所見,又開始造輪子了。哈哈,造輪子我們是認(rèn)真的~ 源碼閱讀是必須的,Underscore是因?yàn)閯倓倢W(xué)習(xí)整理了一波函數(shù)式編程,加上自己曾經(jīng)沒有太多閱讀源碼的經(jīng)驗(yàn),先拿Underscore練練手,...
閱讀 3708·2021-11-16 11:41
閱讀 2917·2021-09-23 11:45
閱讀 716·2019-08-30 15:44
閱讀 572·2019-08-30 13:10
閱讀 1983·2019-08-30 12:49
閱讀 3559·2019-08-28 17:51
閱讀 1507·2019-08-26 12:20
閱讀 732·2019-08-23 17:56