JS 面向对象,原型、原型链

67 阅读1分钟

写在前面:这一篇内容比较少,涉及的是关于面向对象中原型和原型链的一些东西,在JS面向对象的学习中是比较有难度的部分,希望能给你一点帮助;有问题欢迎各位提出。

原型:

​ 每一个函数都有一个属于自己的原型

​ 作用:我们会在原型内部放一些公共方法,目的不是为了让构造函数去使用,而且为了让实例化对象去使用。

Person.prototype.sayHi = () => {
	console.log(111);
}
const p = new Person('QF666');
p.sayHi();

对象:

​ 含义1:一种数据格式;

​ 含义2:某一类事物的实例(某一类内容中的真实个体):

​ 例如:如果一个数据[ ],那么他就是Array这个对象中的某一个个体;

​ 如果一个数据{ },那么他就是Objiect这个对象中的一个个体;等。

原型链:

​ 查找对象的某一个属性:先在对象内部开始查找,找到直接使用,然后停止查找,如果没有找到,会找对象的 obj.__ proto __,如果找到直接使用,然后停止查找。

​ 如果这里没找到会继续去对象的 __ proro __查找,找到直接使用,然后停止查找。

​ 如果还是没有找到,会继续向上查找,直到找到顶层作用对象, Object.prototype,找到就直接用,找不到就返回undefined。

function Person (name) {
	this.name = name;
}
Person.prototype.sayHi = function () {
	console.log(100);
}
const p = new Person('QF001');