原型继承
说到原型继承,那就是要从原型入手,就让我们来简单回顾一下什么是原型吧
原型概述:每个函数身上都有一个原型,我们称之为原型对象 函数的 prototype 属性指向原型对象,原型对象上的 constructor 指回构造函数
那么顾名思义,原型继承那就要从原型下手啦 ! !
function Person() {
this.uname = '张三',
this.age = 22
}
Person.prototype.sex = '男'
Person.prototype.head = 1
Person.prototype.sayName = function () {
console.log('hello javascript')
}
function Son() {
this.eye = 2
}
Son.prototype = new Person()
let per = new Son()
console.log(per)
per.sayName()
sayName 方法定义在了构造函数 Person 的原型上,而通过构造函数 Son 的实例对象却能够访问得到,那么 sayName 方法相当于定义在了 Son 原型对象的原型对象上,之所以 Son 的实例化对象能够访问得到,那正是原型链的功劳
通过 per.sayName() 可以在控制台看到打印结果 'hello javascript'
上面代码运行,打印 Son 的实例化对象 per ,可以看到如下图, 正是 (Son.prototype = new Person() ) 让 Son 的原型对象变成了构造函数 Person 的实例对象 new Person() , 而且 Person 的原型对象上也有我们自己定义的属性方法, 并且它的 constructor 指回 构造函数 Person
喜欢的小伙伴,点个赞再走呗 !!
|