鍍金池/ 問(wèn)答/HTML/ new 關(guān)鍵字創(chuàng)建的對(duì)象與Object.create()創(chuàng)建的對(duì)象有什么不一樣?

new 關(guān)鍵字創(chuàng)建的對(duì)象與Object.create()創(chuàng)建的對(duì)象有什么不一樣?

二者有何區(qū)別,如何選擇?

回答
編輯回答
近義詞

區(qū)別:Object.create 與 new function 區(qū)別

選擇:用 new

補(bǔ)充

還是看樓下的文章吧

2017年12月27日 04:09
編輯回答
慢半拍

Object.create()可以指定你要?jiǎng)?chuàng)建的對(duì)象的原型,不支持傳參
new Obj() 可以傳參,原型一般為Obj的prototype

2017年3月13日 19:10
編輯回答
她愚我

其實(shí)最主要的區(qū)別可以概括成一點(diǎn):new所作用的是一個(gè)函數(shù),而Object.create所作用的是兩個(gè)普通對(duì)象。

Object.create所作用的是兩個(gè)普通對(duì)象,所以它不能包含可執(zhí)行代碼。它只是簡(jiǎn)單地將第一個(gè)參數(shù)設(shè)置為新對(duì)象的原型,并且把第二個(gè)對(duì)象自身的所有可枚舉屬性復(fù)制到新對(duì)象中。

所以,當(dāng)你想以一個(gè)已有對(duì)象作為原型來(lái)創(chuàng)建另一個(gè)對(duì)象時(shí),用Object.create。而如果你已經(jīng)定義了一個(gè)構(gòu)造函數(shù),想用其創(chuàng)建對(duì)象,就用new。所以歸根結(jié)底,兩者的適用情況有少許差別,但本質(zhì)是一樣的,具體選擇哪個(gè)要看你手里有什么。

2017年9月29日 23:36
編輯回答
瞄小懶

又漲知識(shí)了.
http://blog.csdn.net/blueblue...

2018年8月3日 18:53