1、Object.assign(target,...sources)方法用于將自身所有可枚舉屬性(繼承而來的屬性不行)的值(原始類型會(huì)被包裝為對(duì)象,只有字符串的包裝對(duì)象才可能有自身可枚舉屬性)從一個(gè)或多個(gè)源對(duì)象復(fù)制到目標(biāo)對(duì)象(不會(huì)跳過值為null或undefined的源對(duì)象),并且返回一個(gè)新的目標(biāo)對(duì)象(目標(biāo)對(duì)象自身也會(huì)被改變)。
2、Object.create(proto,[propertiesObject])創(chuàng)建一個(gè)新對(duì)象,使用現(xiàn)有的對(duì)象來提供新創(chuàng)建的對(duì)象的_proto_原型,第二個(gè)參數(shù)是添加到新創(chuàng)建的對(duì)象的可枚舉屬性(是自身的屬性,不是原型鏈上的屬性)對(duì)象的屬性描述符以及相應(yīng)的屬性的名稱,屬性分成數(shù)據(jù)屬性(configurable\writable\enumerable\value,除了value外,其他特性默認(rèn)為false)和訪問器屬性(configurable\enumerable\get\set),寫法為
o2=Object.create( { }, { p:
{value:42,
writable:true,
enumerable:true,
configurable:true
}
});
3、Object.dedinedProperty(obj,prop,descriptor)直接在一個(gè)對(duì)象上(obj)定義一個(gè)新屬性(prop),或者修改一個(gè)對(duì)象的現(xiàn)有屬性,并返回這個(gè)對(duì)象,第三個(gè)參數(shù)與Object.create的第二個(gè)參數(shù)一樣