Object.create() 是用來創(chuàng)建一個指定原型對象的對象。
語法
Object.create(prototype, descriptors)
- 參數(shù)
prototype:要用作原型的對象,可以為 null
descriptors(可選):包含一個或多個屬性描述符的 JavaScript 對象
返回值
返回的是一個指定原型對象的對象。
示例1
var obj = {a:1};
var o = Object.create(obj);
console.log(o);

輸出結(jié)果1
新創(chuàng)建的對象o是一個以obj為原型對象的對象。
示例2
var obj = {a:1};
var o = Object.create(null, {
name:{
value:"lily",
enumerable: true
},
age:{
value:15,
enumerable: true
}
});
console.log(o);

輸出結(jié)果2
新創(chuàng)建的對象o是一個具有name和age兩個屬性的對象。
兼容
Object.create()是ES5定義的,也存在兼容性問題,IE6-8都不兼容可以這樣處理兼容問題:
function createObj(obj){
if(Object.create){
return Object.create(obj);
}else{
function Fn(){};
Fn.prototype = obj;
return new Fn();
}
}