原型继承:只要是继承 就涉及到两个构造函数,原型继承就是通过改变原型链的方式来达到继承的效果。
方法:子类.prototype = 父类的实例
原型继承的缺点
1 我继承下来的属性并没有继承在我自己身上,而是在__proto__里面找,当我访问的时候要求去__proto__里面找。
2 我继承的目的是为了继承属性和方法,我自己要使用的属性,自己要用的多个参数在多个位置传递,对我的代码维护和阅读性很不好。
原型继承实现代码如下:
// 构造函数 Person
function Person(name) {
this.name = name
}
Person.prototype.sayHi = function () {
console.log('hi')
}
// 实例化构造函数
let p = new Person('派大星')
// console.log(p)
// 构造函数 Student
function Student(){
this.age = 18
}
Student.prototype = new Person('海绵宝宝')
let s = new Student()
console.log(s.name)
console.log(s.sayH)
运行结果如下图: