-
原型
-
定义:每个函数都有一个prototype(对象属性);都会指向函数的原型对象;prototype(对象属性)上所有的属性和方法,都会被构造函数的实例所继承;这意味着我们可以把公有的属性和方法定义在prototype上。
-
使用:
function Person(name,sex){
this.name=name;
this.sex=sex;
}
var createObj=new Person("zzc","男") //Person代表构造函数;createObj代
//表构造函数的实例;Person.prototype代表原型对象
-
原型链
-
定义:每个实例对象都有一个proto属性,向上指向其构造函数的原型对象;原型对象也有一个proto属性,向上指向Object;Object也含有proto属性,向上指向null;这样形成的一条链叫原型链。
prototype.png
function Person(name){
this.name=name;
}
var person=new Person("zzc") //Person代表构造函数,
//Person.prototype代表原型对象,person代表构造函数的实例
console.log(Person.prototype.constructor==Person) //true //每个原型
//都有一个constructor,指向关联的构造函数
console.log(person.__proto__==Person.prototype) //实例含有
//__proto__,指向构造函数的原型
console.log(Person.prototype.__proto__==Object.prototype) //构造函
//数的原型含有__proto__,指向Object的原型
console.log(Object.prototype.__proto__==null) //Object含有__proto__
//属性,指向null