Object.create() 是用来创建一个指定原型对象的对象。
语法
Object.create(prototype, descriptors)
- 参数
prototype:要用作原型的对象,可以为 null
descriptors(可选):包含一个或多个属性描述符的 JavaScript 对象
返回值
返回的是一个指定原型对象的对象。
示例1
var obj = {a:1};
var o = Object.create(obj);
console.log(o);
输出结果1
新创建的对象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);
输出结果2
新创建的对象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();
}
}
网友评论