亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

【js基礎(chǔ)】理清Object、Object.prototype、Function、Function.

z2xy / 623人閱讀

摘要:上面這段代碼一般被用來判斷變量的類型,相信很多人都非常熟悉今天時(shí)用到上面這段代碼,突然想到方法,為啥兩者不一樣呢的并不是自有屬性,而是繼承屬性那究竟時(shí)繼承的誰呢,或者換句話說,時(shí)由什么構(gòu)造的呢為啥運(yùn)行上面這段代碼會提示原來執(zhí)行等同于執(zhí)行而且

Object.prototype.toString.call(something)

上面這段代碼一般被用來判斷變量的類型,相信很多人都非常熟悉
今天coding時(shí)用到上面這段代碼,突然想到 Object.toString 方法,為啥兩者不一樣呢
ObjecttoString 并不是自有屬性,而是繼承屬性
Object 究竟時(shí)繼承的誰呢,或者換句話說,Object 時(shí)由什么構(gòu)造的呢?

Object.toString.call([])

為啥運(yùn)行上面這段代碼會提示 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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/90085.html

相關(guān)文章

  • JS中原型和原型鏈深入理解

    摘要:如果要理清原型和原型鏈的關(guān)系,首先要明確一下幾個(gè)概念中的所有東西都是對象,函數(shù)也是對象而且是一種特殊的對象中所有的東西都由衍生而來即所有東西原型鏈的終點(diǎn)指向?qū)ο蠖加幸粋€(gè)隱藏的屬性,他指向創(chuàng)建它的構(gòu)造函數(shù)的原型,但是有一個(gè)例外,指向的是。 首先要搞明白幾個(gè)概念: 函數(shù)(function) 函數(shù)對象(function object) 本地對象(native object) 內(nèi)置對象(bu...

    Alex 評論0 收藏0
  • __proto__ 和 prototype 會出現(xiàn)在什么地方?它們之間是什么關(guān)系?實(shí)現(xiàn)繼承依賴什么?

    摘要:遞歸閉包原型繼承本文主要講解理清一些函數(shù)常用的知識點(diǎn)遞歸閉包是什么閉包使用場景什么是原型和原型鏈如何實(shí)現(xiàn)繼承繼承的原理,原文。當(dāng)訪問一個(gè)對象上的屬性時(shí),先嘗試訪問自身上的屬性,再通過原型鏈嘗試訪問其構(gòu)造函數(shù)原型上的屬性。 遞歸、閉包、原型、繼承 本文主要講解、理清一些函數(shù)常用的知識點(diǎn):遞歸、閉包是什么、閉包使用場景、什么是原型和原型鏈、如何實(shí)現(xiàn)繼承、繼承的原理,原文。 遞歸 函數(shù)的遞歸...

    bang590 評論0 收藏0
  • JS的原型鏈和繼承

    摘要:是對象或者實(shí)例中內(nèi)置的,其指向的是產(chǎn)生該對象的對象的在瀏覽器中提供了讓我們可以訪問,通過的指向形成的一個(gè)鏈條,就稱做原型鏈,原型鏈的整個(gè)鏈路是實(shí)例對象構(gòu)造函數(shù)的的。 原型和原型鏈 原型prototype,在創(chuàng)建新函數(shù)的時(shí)候,會自動(dòng)生成,而prototype中也會有一個(gè)constructor,回指創(chuàng)建該prototype的函數(shù)對象。 __proto__是對象或者實(shí)例中內(nèi)置的[[proto...

    anRui 評論0 收藏0
  • 窺探Underscore源碼系列-開篇

    摘要:他指示了一個(gè)對象的屬性,返回的將用來獲得該屬性對應(yīng)的值在上面的分析中,我們知道,當(dāng)傳入的是一個(gè)函數(shù)時(shí),還要經(jīng)過一個(gè)叫的內(nèi)置函數(shù)才能獲得最終的所以此處的必然是優(yōu)化回調(diào)的作用了。 開篇說明 對的,讓你所見,又開始造輪子了。哈哈,造輪子我們是認(rèn)真的~ 源碼閱讀是必須的,Underscore是因?yàn)閯倓倢W(xué)習(xí)整理了一波函數(shù)式編程,加上自己曾經(jīng)沒有太多閱讀源碼的經(jīng)驗(yàn),先拿Underscore練練手,...

    zorpan 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<