摘要:簡(jiǎn)介此方法用于繼承指定對(duì)象的屬性和方法然后去創(chuàng)建一個(gè)新的對(duì)象調(diào)用時(shí)需要傳入兩個(gè)參數(shù)使用查看結(jié)果如下查找對(duì)象的屬性時(shí)會(huì)從對(duì)象自身順著原型鏈一直往上找直到找到返回屬性值找不到返回如果對(duì)象的屬性是不可枚舉的那么雖然不能被遍歷到但是如果存在還是可以
Object.create()簡(jiǎn)介
此方法用于繼承指定對(duì)象的屬性和方法然后去創(chuàng)建一個(gè)新的對(duì)象, 調(diào)用時(shí)需要傳入兩個(gè)參數(shù)[o: object, properties: object]
使用
var obj = { id: 123, name: "Tom", age: 19, sex: 9, on: { eat: () => alert(`it"s time to eat`) } } var subObj = Object.create(obj || null);
查看結(jié)果如下:
查找對(duì)象的屬性時(shí)會(huì)從對(duì)象自身順著原型鏈一直往上找, 直到找到返回屬性值, 找不到返回undefined; 如果對(duì)象的屬性是不可枚舉的, 那么雖然不能被for in遍歷到, 但是如果存在還是可以被找到的, eg:
首先創(chuàng)建一個(gè)對(duì)象, 使用Object.defineProperties()方法設(shè)置屬性, 其中id不可枚舉, name可枚舉
var obj = {} Object.defineProperties(obj, { id: { value: 123, enumerable: false }, name: { value: "Tom", enumerable: true } })
遍歷對(duì)象, 以驗(yàn)證其可枚舉的屬性
for (var key in obj) { console.log(`{value: key} : ${obj[key]}: ${key}`) }
查找屬性, 發(fā)現(xiàn)都是可以獲取到的
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/105538.html
摘要:使用構(gòu)造函數(shù)的原型繼承相比使用原型的原型繼承更加復(fù)雜,我們先看看使用原型的原型繼承上面的代碼很容易理解。相反的,使用構(gòu)造函數(shù)的原型繼承像下面這樣當(dāng)然,構(gòu)造函數(shù)的方式更簡(jiǎn)單。 五天之前我寫(xiě)了一個(gè)關(guān)于ES6標(biāo)準(zhǔn)中Class的文章。在里面我介紹了如何用現(xiàn)有的Javascript來(lái)模擬類并且介紹了ES6中類的用法,其實(shí)它只是一個(gè)語(yǔ)法糖。感謝Om Shakar以及Javascript Room中...
摘要:創(chuàng)建對(duì)象的種方式方式一通過(guò)對(duì)象字面量表示法又稱為直接量原始方式。例子在自定義構(gòu)造函數(shù)的內(nèi)部定義對(duì)象的方法函數(shù)的值賦給的屬性。 創(chuàng)建對(duì)象的4種方式 方式一:通過(guò)對(duì)象字面量表示法(又稱為直接量、原始方式)。object literals 方式二:通過(guò)new和構(gòu)造函數(shù)Object()、String()等。 方式三:用自定義構(gòu)造函數(shù)來(lái)初始化新對(duì)象。 方式四:通過(guò)Object.create()...
摘要:盡管的右操作數(shù)是構(gòu)造函數(shù),但計(jì)算過(guò)程實(shí)際是檢測(cè)了對(duì)象的繼承關(guān)系。通過(guò)創(chuàng)建的對(duì)象使用構(gòu)造函數(shù)的屬性作為它們的原型。 JavaScript之對(duì)象屬性 Object.create()繼承 ECMAScript 5定義了一個(gè)名為Object.create()的方法,它創(chuàng)建一個(gè)新對(duì)象, 其中第一個(gè)參數(shù)是這個(gè)對(duì)象的原型。Object.create()提供第二個(gè)可選參數(shù),用以對(duì)對(duì)象的屬性進(jìn)行進(jìn)一步描...
摘要:在節(jié)中,我們學(xué)習(xí)到了通過(guò)構(gòu)造函數(shù)創(chuàng)建對(duì)象的三個(gè)重要步驟,其中的一步是把構(gòu)造函數(shù)的對(duì)象設(shè)置為創(chuàng)建對(duì)象的原型。利用而不是直接用創(chuàng)建一個(gè)實(shí)例對(duì)象的目的是,減少一次調(diào)用父構(gòu)造函數(shù)的執(zhí)行。 JavaScript語(yǔ)言不像面向?qū)ο蟮木幊陶Z(yǔ)言中有類的概念,所以也就沒(méi)有類之間直接的繼承,JavaScript中只有對(duì)象,使用函數(shù)模擬類,基于對(duì)象之間的原型鏈來(lái)實(shí)現(xiàn)繼承關(guān)系,ES6的語(yǔ)法中新增了class關(guān)鍵...
摘要:由構(gòu)造函數(shù)返回的對(duì)象就是表達(dá)式的結(jié)果。如果構(gòu)造函數(shù)沒(méi)有顯式返回一個(gè)對(duì)象,則使用步驟創(chuàng)建的對(duì)象。運(yùn)算符返回一個(gè)布爾值,表示對(duì)象是否為某個(gè)構(gòu)造函數(shù)的實(shí)例。 面向?qū)ο?本人能力有限,有誤請(qǐng)斧正 本文旨在復(fù)習(xí)面向?qū)ο?不包含es6) 本文學(xué)習(xí)思維 創(chuàng)建對(duì)象的方式,獲取對(duì)象屬性 構(gòu)造函數(shù),構(gòu)造函數(shù)的new 做了什么 原型與原型對(duì)象 原型鏈 繼承(借用構(gòu)造繼承、原型繼承、組合繼承、寄生組合繼承)...
摘要:父類的原型方法子類調(diào)用構(gòu)造函數(shù)子類繼承父類前面說(shuō)到的,實(shí)際上是將第一個(gè)參數(shù)無(wú)論是原型對(duì)象還是普通對(duì)象的屬性添加到新創(chuàng)建對(duì)象的原型中,這也就意味著,通過(guò)中定義的屬性和方法是無(wú)法通過(guò)方法添加到新創(chuàng)建對(duì)象中的。 ES5 和 ES6 中 Object 添加了很多新的方法,現(xiàn)在很多開(kāi)源代碼中有用到了這些,今天來(lái)整理一番。 Object.assign() 這是ES6新添加的方法,Object.as...
閱讀 3167·2021-11-22 15:25
閱讀 3838·2021-11-17 09:33
閱讀 3362·2021-11-08 13:15
閱讀 3044·2021-09-22 10:56
閱讀 535·2021-08-31 09:45
閱讀 2745·2019-08-30 13:49
閱讀 3072·2019-08-30 12:52
閱讀 1136·2019-08-29 17:05