面试了许多求职者,很多求职者只知其然,而不知所以然,写此文章为广大前端小伙伴指引迷津。纯干货!纯干货!纯干货!
目录
面向对象
什么是原型?
答:JS中的对象包含了一个prototype的内部属性,这个属性所对应的就是该对象的原型。
什么是原型链?
答:proto是每个对象都有的属性,而js里万物皆对象,所以会形成一条proto连起来的链条,递归访问proto必须最终到头,且值为null,当js引擎查找对象属性时,先查找对象本身是否存在该属性,如果不存在,会在原型链中查找,但不会查找自身的prototype。
原型以及原型链对应的关系?
答:Object.__proto__ === Function.prototype;
Function.prototype.__proto__ === Object.prototype;
Object.prototype.__proto__ === null;。
面试大白话
答:首先js里万物皆对象,每个对象都有proto的属性,所以会形成一条proto连起来的链条,递归访问proto必须最终到头,且值为null,当js引擎查找对象属性时,先查找对象本身是否存在该属性,如果不存在,会在原型链中查找,但不会查找自身的prototype。。