JavaScript中使用Object.create()創(chuàng)建對象介紹
對于對象的創(chuàng)建,除了使用字面量和new操作符,在ECMAScript 5標(biāo)準(zhǔn)中,還可以使用Object.create()來進(jìn)行。Object.create()函數(shù)接受2個(gè)對象作為參數(shù):第一個(gè)對象是必需的,表示所創(chuàng)建對象的prototype;第二個(gè)對象是可選的,用于定義所創(chuàng)建對象的各個(gè)屬性(比如,writable、enumerable)。
var o = Object.create({x:1, y:7});
console.log(o);//Object {x=1, y=7}
console.log(o.__proto__);//Object {x=1, y=7}
將null作為第一個(gè)參數(shù)調(diào)用Object.create()將生成一個(gè)沒有prototype的對象,該對象將不會(huì)具有任何基本的Object屬性(比如,由于沒有toString()方法,對這個(gè)對象使用+操作符會(huì)拋出異常):
var o2 = Object.create(null);
console.log("It is " + o2);//Type Error, can't convert o2 to primitive type
對于僅支持ECMAScript 3標(biāo)準(zhǔn)的瀏覽器,可以用Douglas Crockford的方法來進(jìn)行Object.create()操作:
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
newObject = Object.create(oldObject);
相關(guān)文章
JS實(shí)現(xiàn)模態(tài)框拖拽動(dòng)態(tài)效果
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)模態(tài)框拖拽動(dòng)態(tài)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07JavaScript實(shí)現(xiàn)一個(gè)多少秒后自動(dòng)跳轉(zhuǎn)的頁面(案例代碼)
最近遇到這樣一個(gè)需求是用js簡單實(shí)現(xiàn)一個(gè)多少秒后自動(dòng)跳轉(zhuǎn)的頁面,實(shí)現(xiàn)代碼非常簡單,對js自動(dòng)跳轉(zhuǎn)頁面相關(guān)知識(shí)感興趣的朋友一起看看吧2023-01-01Javascript節(jié)點(diǎn)關(guān)系實(shí)例分析
這篇文章主要介紹了Javascript節(jié)點(diǎn)關(guān)系,實(shí)例分析了javascript操作父子節(jié)點(diǎn)及兄弟節(jié)點(diǎn)的相關(guān)技巧,需要的朋友可以參考下2015-05-05表單元素值獲取方式j(luò)s及java方式的簡單實(shí)例
下面小編就為大家?guī)硪黄韱卧刂但@取方式j(luò)s及java方式的簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10javascript tips提示框組件實(shí)現(xiàn)代碼
一個(gè)簡單的類似title的提示效果,但現(xiàn)實(shí)內(nèi)容可以很豐富,以上js另存為tip.js,下面是使用的demo。2010-11-11使用閉包對setTimeout進(jìn)行簡單封裝避免出錯(cuò)
寫js腳本時(shí)經(jīng)常會(huì)用到一些拼寫函數(shù)的情況,例如調(diào)用setTimeout...查了很長時(shí)間,為什么就是彈不出對話框呢,使用閉包就可完全避免了2013-07-07Javascript(es2016) import和require用法和區(qū)別詳解
本篇文章主要介紹了Javascript(es2016) import和require用法和區(qū)別詳解,具有一定的參考價(jià)值,有興趣的可以了解下2017-08-08