ES5中定义的Object.create(proto)方法,会创建并返回一个新的对象,这个新的对象以传入的proto对象为原型。
语法如下:
Object.create(proto)
(注:第二个参数忽略)
proto —— 作为新创建对象的原型对象
使用示例如下:
alert(a.x);```
Object.create在某些浏览器没有支持,请给出Object.create的兼容实现。
// 参考JavaScript高级程序设计中的原型式继承
Object.prototype.create = function(obj) {
if(Object.prototype.create){
return Object.prototype.create //特性检测,判断浏览器是否兼容
}else{
function F(){ F.prototype = obj; //以传入参数为原型构造对象
return new F(); } } };
* 在Object()函数内部,先创建了一个临时性的构造函数,然后将传入的对象作为这个构造函数的原型,最后返回了这个临时类型的新实例。
* 从本质上讲,object()对传入其中的对象执行了一次浅复制。