对于js中原型及原型链的理解
在面试中,面试官会常会叫你谈谈原型链的理解,那么你该如何组织自己的语言呢?可以从下面几方面讲述:
原型
函数也是特殊的对象
- 所有对象的 prototype 指向他的原型对象
- 所有原型对象的 constructor(构造函数)指向他的函数
- 所有对象都可以通过 proto 找到原型对象
- 对象的 proto 属性指向原型一直到Object的原型对象
原型链
对象中__proto__组成的链条我们称之为原型链
对象在查找属性和方法的时候, 会先在当前对象查找,如果当前对象中找不到想要的, 会依次去上一级原型对象中查找,如果找到Object原型对象都没有找到, 就会报错
**注意:**实例是没有prototype的,例如
function Foo(){}
let b = new Foo()
console.log(b.prototype)//undifined
console.log(Foo.prototype===b.__proto__)//true
个人学习记录打卡,原文详细请看