日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

原型链(__proto__)

發布時間:2023/12/15 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 原型链(__proto__) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面詳細的解釋了new的幾個步驟,其中隨意帶過了一下原型鏈的概念,如果細讀那篇文章,基本對原型也能有所理解。

原型有兩個關鍵屬性,一個是__proto__一個是prototype,了解了這兩個對象基本就能了解整個原型鏈的關系。

本篇主要探討一下__proto__這個屬性。

javascript中幾乎所有類型都擁有__proto__這個屬性,可以打印下面的__proto__的值看看都是什么結果。

"字符串".__proto__
(123456).__proto__
(true).__proto__
(function(){}).__proto__
([]).__proto__
({}).__proto__

它們都有值,并且它們的值似乎告訴它們是什么,例如前面都有類型如String或Boolean或在直接放回該類型的字面量寫法function(){}; []; {};,那現在就假設__proto__的用處就是說出它們是誰.。

再關注一點細節,這三個基本類型的__proto__有一些相似,大概是這樣的。

String {length: 0, [[PrimitiveValue]]: ""}
Number {[[PrimitiveValue]]: 0}
Boolean {[[PrimitiveValue]]: false}

//以上出自chrome控制臺

這三個值都是對象,展開它們會發現一些這種類型常用的屬性,例如

length
match
toFixed toString

它們都是什么鬼,難道在使用這些屬性或方法的時候都是通過__proto__上找的,我只好假定__proto__的作用是提供一些js原生的屬性和方法,那么剛好就得出一個結論這些值原生的屬性和方法都是從__proto__來的。

接著往下走吧,還是不能理解__proto__,但是大概了解了它的一些信息。

還發現一個規律,__proto__里面還有一個__proto__,并且它們的值都是一樣的并且是一個Object對象,這里又可以得出一個結論,這些數據類型通過__proto__都會找到同一個Object對象。


再接下來插播一下null和undefined

為什么整篇都不見undefined和null這兩個基友,而且當使用undefined.__proto__和null.__proto.__的時候會報錯,說明這兩個并沒有這兩個屬性,但是在js中沒有這個屬性會返回undefined,那只能根據錯誤提示來參考,

Uncaught TypeError: Cannot read property '__proto__' of undefined
未知的類型錯誤,無法讀取undefined的__proto__屬性
也就是說這兩個值不存在屬性或方法的概念,它們本身就代表著無。

那么現在基本可以知道,在js中,只有兩種類型,一種是有值類一種是無值類,有值類都可以通過__proto__最終指向Object對象,而無值類就是null和undefined兩種,一種代表空,一種代表未定義。


到了這里,大概明白了__proto__是干什么的了,我并沒有給它一個明確的定義,但是我可以簡單的說一下它的功能:

除了undefined和null之外的所有值都有__proto__這個值
這個__proto__的值最終會指向同一個Object對象,例如 :類似與這樣查找最終會中找到Object對象:*.__proto.__.__proto.__.***__proto.__
某一個值的每一層的 __proto__中的方法都可以直接使用,例如:true.__proto__中有toString方法,那么就可以直接使用這個true.toString()方法,再例如true.__proto.__.__proto.__中擁有hasOwnProperty這個方法,那么就直接可以使用true.hasOwnProperty()

總結

以上是生活随笔為你收集整理的原型链(__proto__)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。