写在前面:这一篇内容比较少,涉及的是关于面向对象中原型和原型链的一些东西,在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');