理解js中是原型链? 如何实现继承?

JavaScript015

理解js中是原型链? 如何实现继承?,第1张

1.每个构造函数都有一个原型对象

2.每个原型对象都包含一个指向构造函数的指针

3.每个实例都包含一个指向原型对象的指针

4.查找方式是一层层向上查找直至顶层Object.prototype

1.原型链继承

2.借用构造函数(call,apply)

3.组合继承(原型链+构造函数)

4.原型式继承

5.寄生式组合式继承

每一种继承的方式都有自己的优缺点

组合继承的特点是会调用构造函数两次,

都是将多种继承方式组合到一起相辅相成.

1.创建一个空的对象

2.将空的对象的proto成员指向构造函数的prototype成员对象

3.调用构造函数将this指向前面创建的对象

继承的方式一共有三种:

一、原型继承

通过prototype 来实现继承。

function Person(name,age) { this.name=namethis.age=age

}

Person.prototype.sayHello=function(){

alert (''使用原型得到Name:'' + this.name)

}var per = new Person("马小倩",21)

per.sayHello()//输出:使用原型得到Name:马小倩

function Student(){}

Student.prototype=new Person("洪如彤",21) //实现原型继承

var stu = new Student()

Student.prototype.grade=5

Student.prototype.intr=function(){

alert(this.grade)

}

stu.sayHello()//输出:使用原型得到Name:洪如彤

stu.intr()//输出:5

二、构造函数实现继承

function Person(name,age) { this.name=namethis.age=age

}

Person.prototype.sayHello=function(){

alert (''使用原型得到Name:'' + this.name)

}var per = new Person("马小倩",21)

per.sayHello()//输出:使用原型得到Name:马小倩

三、 通过call、apply 实现继承