成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

JS對(duì)象隨筆

Lin_YT / 2470人閱讀

摘要:原型對(duì)象對(duì)象的原型對(duì)象實(shí)質(zhì)上是對(duì)象的構(gòu)造函數(shù)的原型對(duì)象。構(gòu)造函數(shù)所有的對(duì)象都是通過(guò)構(gòu)造函數(shù)實(shí)例化出來(lái)的。即一個(gè)對(duì)象,如果沿著原型鏈找下去,最終都會(huì)找到構(gòu)造函數(shù)原型對(duì)象相互之間糾纏不休,你中有我,我中有你。

JS中的對(duì)象

JS中對(duì)象(若無(wú)特殊說(shuō)明,本文中的對(duì)象都為對(duì)象實(shí)例,即使是空對(duì)象實(shí)例)可謂是一個(gè)核心的概念,縱觀整個(gè)JS的數(shù)據(jù)結(jié)構(gòu)如String、Number、Array、Boolean等,都有其對(duì)應(yīng)的對(duì)象。細(xì)細(xì)數(shù)來(lái),感覺(jué)上就是JS里一切數(shù)據(jù)皆對(duì)象(除了純數(shù)字、nullundefined外,其他數(shù)據(jù)都可以訪問(wèn)到__proto__屬性)。本文將淺析一下JS中的對(duì)象及相關(guān)概念。

對(duì)象的屬性

JS中的對(duì)象本質(zhì)上就是一個(gè)若干個(gè)無(wú)序的鍵值對(duì)組成的集合。每個(gè)鍵值對(duì)就是對(duì)象的屬性或方法。而對(duì)象中的每個(gè)屬性都對(duì)應(yīng)著有屬性描述符,屬性描述符分為數(shù)據(jù)描述符和存儲(chǔ)描述符。屬性描述符又包含了以下幾個(gè)屬性。

數(shù)據(jù)描述符和存取描述符均具有以下可選鍵值:

configurable
當(dāng)且僅當(dāng)該屬性的 configurable 為 true 時(shí),該屬性描述符才能夠被改變,也能夠被刪除。默認(rèn)為 false。
enumerable
當(dāng)且僅當(dāng)該屬性的 enumerable 為 true 時(shí),該屬性才能夠出現(xiàn)在對(duì)象的枚舉屬性中。默認(rèn)為 false。
數(shù)據(jù)描述符同時(shí)具有以下可選鍵值:

value
該屬性對(duì)應(yīng)的值。可以是任何有效的 JavaScript 值(數(shù)值,對(duì)象,函數(shù)等)。默認(rèn)為 undefined。
writable
當(dāng)且僅當(dāng)該屬性的 writable 為 true 時(shí),該屬性才能被賦值運(yùn)算符改變。默認(rèn)為 false。
存取描述符同時(shí)具有以下可選鍵值:

get
一個(gè)給屬性提供 getter 的方法,如果沒(méi)有 getter 則為 undefined。該方法返回值被用作屬性值。默認(rèn)為 >undefined。
set
一個(gè)給屬性提供 setter 的方法,如果沒(méi)有 setter 則為 undefined。該方法將接受唯一參數(shù),并將該參數(shù)的新值>分配給該屬性。默認(rèn)為 undefined。

對(duì)象的屬性和方法中有幾個(gè)特殊的存在:

constructor

該屬性指向?qū)ο蟮臉?gòu)造函數(shù)

__proto__(非標(biāo)準(zhǔn),不推薦使用)

該屬性指向?qū)ο蟮臉?gòu)造函數(shù)的原型對(duì)象,因?yàn)閷?duì)象沒(méi)有prototype屬性,所以通過(guò)該屬性指向它。此屬性為訪問(wèn)器屬性,不推薦使用。若需要獲取對(duì)象的原型對(duì)象可以用Object.getPrototypeOf(obj)來(lái)獲取。

通過(guò)對(duì)象訪問(wèn)的屬性和方法除了來(lái)自對(duì)象自身定義的以外,還有從其原型鏈上繼承的屬性和方法。

原型對(duì)象

對(duì)象的原型對(duì)象實(shí)質(zhì)上是對(duì)象的構(gòu)造函數(shù)的原型對(duì)象??梢杂?b>Object.setPrototypeOf(obj,prototype)改變對(duì)象的原型對(duì)象。
訪問(wèn)對(duì)象的原型對(duì)象有兩種方法,一是通過(guò)內(nèi)置屬性 __proto__訪問(wèn),二是通過(guò)Object方法Object.getPrototypeOf(obj)訪問(wèn)。兩種方法都有其局限性,第一種方法不是ES標(biāo)準(zhǔn)所支持的,雖然ES6已經(jīng)支持了。因?yàn)?b>__proto__屬性時(shí)訪問(wèn)器屬性,所以可以修改對(duì)象的原型對(duì)象(這樣很影響性能)。第二種方法在IE瀏覽器中的支持情況是IE9+??傮w上講,推薦第二種方法去訪問(wèn)對(duì)象的原型對(duì)象。如果想要替換原型對(duì)象,則可用 Object.setPrototypeOf(obj,prototype)重新設(shè)置其原型對(duì)象。

構(gòu)造函數(shù)

所有的對(duì)象都是通過(guò)構(gòu)造函數(shù)實(shí)例化出來(lái)的。Object也不例外。
對(duì)象的構(gòu)造函數(shù)恒等于實(shí)例出該對(duì)象的構(gòu)造函數(shù)的原型對(duì)象的constructor屬性指向的函數(shù)。即

var obj = new A(); 
obj.constructor===A.prototype.constructor

一個(gè)對(duì)象,如果沿著原型鏈找下去,最終都會(huì)找到Object構(gòu)造函數(shù)、原型對(duì)象相互之間糾纏不休,你中有我,我中有你。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/81191.html

相關(guān)文章

  • 前端隨筆(雜談)

    摘要:經(jīng)過(guò)對(duì)前端技術(shù)的學(xué)習(xí),感觸良多,雖然之前也接觸過(guò)前端的知識(shí),但是沒(méi)有進(jìn)行系統(tǒng)的學(xué)習(xí)過(guò),在大三上學(xué)期學(xué)過(guò)和簡(jiǎn)單的,老師也沒(méi)有深度講解,知識(shí)也沒(méi)有形成體系,經(jīng)過(guò)一段時(shí)間的學(xué)習(xí),有以下感觸與大家分享整個(gè)前端知識(shí)就像一座房子,而是磚,建一個(gè)網(wǎng)頁(yè),里經(jīng)過(guò)對(duì)前端技術(shù)的學(xué)習(xí),感觸良多,雖然之前也接觸過(guò)前端的知識(shí),但是沒(méi)有進(jìn)行系統(tǒng)的學(xué)習(xí)過(guò),在大三上學(xué)期學(xué)過(guò)h5和簡(jiǎn)單的css,老師也沒(méi)有深度講解,知識(shí)也沒(méi)有形...

    caohaoyu 評(píng)論0 收藏0
  • 繼承的實(shí)現(xiàn)方式及原型概述 | JavaScript 隨筆

    摘要:每一個(gè)對(duì)象直接量都是的子類,即構(gòu)造函數(shù)中的構(gòu)造函數(shù)與普通函數(shù)并沒(méi)有什么兩樣,只不過(guò)在調(diào)用時(shí),前面加上了關(guān)鍵字,就當(dāng)成是構(gòu)造函數(shù)了。由于沒(méi)有傳入變量,在調(diào)用的構(gòu)造函數(shù)時(shí),會(huì)出錯(cuò)這個(gè)問(wèn)題可以通過(guò)一個(gè)空對(duì)象來(lái)解決改自。 showImg(https://segmentfault.com/img/bVmNZj); 對(duì)于 OO 語(yǔ)言,有一句話叫Everything is object,雖然 Ja...

    chenjiang3 評(píng)論0 收藏0
  • [JavaScript 隨筆] 垃圾回收

    摘要:在中,由于垃圾回收是自動(dòng)進(jìn)行的,所以人們?cè)诰幋a時(shí)可能不太會(huì)注意這方面。時(shí),引擎統(tǒng)一對(duì)所有這些狀態(tài)的對(duì)象進(jìn)行回收。,表示釋放該對(duì)象后能得到的內(nèi)存大小。 在 JavaScript 中,由于垃圾回收是自動(dòng)進(jìn)行的,所以人們?cè)诰幋a時(shí)可能不太會(huì)注意這方面。但事實(shí)是,一些 webapp 在使用一段時(shí)間后,會(huì)出現(xiàn)卡頓的現(xiàn)象,特別是那些單頁(yè)應(yīng)用,包括 WebView 方式的手機(jī) app 。這個(gè)現(xiàn)象在傳統(tǒng)...

    ConardLi 評(píng)論0 收藏0
  • [JavaScript 隨筆] 關(guān)于 this 你必須知道這幾點(diǎn)

    摘要:關(guān)于中的坑大家都踩過(guò)。那這里的和是嚴(yán)格相等的。這里介紹的是通過(guò)創(chuàng)建對(duì)象時(shí)的。提示一下,數(shù)組對(duì)象的函數(shù)本身就是有這個(gè)功能的,也就是說(shuō)可以達(dá)到要求。事件有兩種記法,一個(gè)是也是類似,那么在中出現(xiàn)的表示觸發(fā)該事件的元素,也就是。 TL;DR: this 指向調(diào)用該方法的對(duì)象,只有函數(shù)執(zhí)行時(shí),this 才有定義。 關(guān)于 JavaScript 中 this 的坑大家都踩過(guò)。像本文開(kāi)頭的這句話,道理...

    鄒強(qiáng) 評(píng)論0 收藏0

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

0條評(píng)論

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