成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

z2xy / 601人閱讀

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

Object.prototype.toString.call(something)

上面這段代碼一般被用來判斷變量的類型,相信很多人都非常熟悉
今天coding時(shí)用到上面這段代碼,突然想到 Object.toString 方法,為啥兩者不一樣呢
ObjecttoString 并不是自有屬性,而是繼承屬性
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)文章

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

    摘要:如果要理清原型和原型鏈的關(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...

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

    摘要:遞歸閉包原型繼承本文主要講解理清一些函數(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ù)的遞歸...

    bang590 評(píng)論0 收藏0
  • JS的原型鏈和繼承

    摘要:是對(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...

    anRui 評(píng)論0 收藏0
  • 窺探Underscore源碼系列-開篇

    摘要:他指示了一個(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練練手,...

    zorpan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

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