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