Object.create()方法是ECMAScript 5中新增的方法,这个方法用于创建一个新对象。被创建的对象继承另一个对象的原型,在创建新对象时可以指定一些属性。
语法: Object.create(proto[,propertiesObject])
proto: 对象,要继承的原型
propertiesObject: 对象,可选参数,为新创建的对象指定属性对象。该属性对象可能包含以下值:
注意,使用Object.create()方法创建对象时,如果不是继承一个原有的对象,而是创建一个全新的对象,就要把proto设置为null。
来看一个简单的应用
// 基类
function Site() {
this.name = 'Site';
this.domain = 'domain';
}
Site.prototype.create = function(name, domain) {
this.name = name;
this.domain = domain;
};
// 子类
function Itbilu() {
Site.call(this); //调用基类的构造函数
}
// 继承父类
Itbilu.prototype = Object.create(Site.prototype);
// 创建类实例
var itbilu = new Itbilu();
itbilu instanceof Site; // true
tbilu instanceof Itbilu; // true
itbilu.create('IT笔录', 'itbilu.com');
itbilu.name; // 'IT笔录'
itbilu.domain; // 'itbilu.com'