Object.create()
Object.create(proto [, propertiesObject ]) 是E5中提出的一种新的对象创建方式,第一个参数是要继承的原型,如果不是一个子函数,可以传一个null,第二个参数是对象的属性描述符,这个参数是可选的。
例1:
var A=function(){ this.blood="lee"; } A.prototype.setI=function(){ console.log( this.blood) } var a=new A(); var newa=Object.create(a); newa.setI() //newa拥有了A的原型方法
例2:
function Car (desc) { this.desc = desc; this.color = "red"; } Car.prototype = { getInfo: function() { return ‘A ‘ + this.color + ‘ ‘ + this.desc + ‘.‘; } }; var car = Object.create(Car.prototype); car.color = "blue"; //改写 console.log(car.getInfo()); //结果为:A blue undefined.
在不支持Object.create方法的浏览器中,则可以使用以下代码
Object.create = Object.create || function(obj){ var F = function(){}; F.prototype = obj; return new F(); }
时间: 2024-11-26 09:36:30