1.Object.create():(仅ECMAScript5)
用于构建一个新对象,第一个参数是这个对象的原型,第二个参数对属性进行描述:
//o1继承属性x, y
var o1 = Object.create({x: 1, y: 1});
//不继承任何原型的对象
var o2 = Object.create(null);
//等同于{}和new Object()
var o3 = Object.create(Object.prototype);
2.实现一个继承对象(兼容版本):
function inherit(p) {
if (p == null) throw TypeError();
if (Object.create)
return Object.create(p);
//兼容
var t = typeof p;
if (t !== "object" && t !== "function")
throw TypeError();
function f() {};
f.prototype = p;
return new f();
}
//使用继承函数防止工具库意外修改原始对象属性
var o = {x: 1};
lib_func(inherit(o));