函数继承与原型链

1、实现函数继承主要依赖于原型链,在创建实例时,实例有一个内部属性prototype指向原型对象,原型对象内的所有方法会被该实例使用。(构造函数创建之后,会生成原型对象prototype,原型对象也会有一个指针constructor指向构造函数)

function person() {

}
person.prototype.x=10;
person.prototype.y=20;
person.prototype.z=30;
person.prototype.xx=function () {
    alert("我是xx!")
}
var student=new person();
console.log(student.z)
console.log(student.xx)  // function(){alert("我是xx!")}
console.log(student.xx()) // 我是xx!

2、原型链:首先创建一个构造函数,在构造函数上默认生成一个prototype属性并指向原型对象。使用下一个构造函数的原型对象作为该构造函数的实例,既:nextFunction.prototype=new thisFunction();

*生成的实例对象有一个__proto__属性也会指向原型, __ptoto__属性不是标准, 但是大多数浏览器都实现了这一属性.

所有的对象都有原型,最终都会回到object.prototype(object构造函数的prototype属性),object.prototype的原型为空(null)。

 

猜你喜欢

转载自blog.csdn.net/lgl_19910331/article/details/81101949