var Person = function(age) {
this.age=age;
this.say=function(){console.log('hello');}
};
var p=new Person(11);
var p1 = Object.create(p);


从console中可以发现,p成了p1的原型对象,p中的属性和方法都成了p1的原型方法。
Object.create的作用就是传入一个对象,给创建的新对象提供__proto__引用
多用在对象的继承中。
Object.create的实现方式
if (!Object.create) {
Object.create = function(proto, propertiesObject) {
if (typeof proto !== 'object' && typeof proto !== 'function') {
throw new TypeError('Object prototype may only be an Object:' + proto);
} else if (proto === null) {
throw new Error("This browser's implementation of Object.create is a shim and doesn't support 'null'");
}
if (typeof propertiesObject != 'undefined') {
throw new Error("This browser's implementation of Object.create is a shim and doesn't support a second argument");
}
function F() {};
F.prototype = proto;
return new F();
}
}
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create