快速掌握 JS 面试题之『原型和原型链』

作者: 我是小野森森分类: 野生技能协会 发布时间: 2021-04-11 09:00:17 浏览:73591 次

快速掌握 JS 面试题之『原型和原型链』

屋檐下的打伞人:
我是这么理解的,这个原型链是有俩个概念的一个显式原型和隐式原型,如 2:17 秒那张图。先有个Person这个类,类里面有喝水这个方法(函数),Person这个类里面的所有方法(函数)看做为显示原型。好,Person这里是这样理解的,再来看Teacher,Teacher这个地方开始真的分为隐式和显式了,因为Teacher的类继承了Person所以Person的显式原型变成了Teacher的隐式原型。最后再被new出来的teacher的显式原型是自己的几个参数,然后隐式原型指向着Teacher,Teacher又继承了Person,然后特性就是调用方法(函数)的时候自己没有会去隐式原型里面找,找不到就又会去上一级找直到最上面。[口罩]

前端酱紫:
哈默老师能把面试题总结写在评论区吗,这样可以先背下来,然后再理解。因为专业名词有些不知道怎么表述。

【回复】在 JS 中,每当定义一个对象(函数也是对象)时,对象中都会包含一些预定义的属性。其中每个函数对象都有一个prototype 属性,这个属性指向函数的原型对象。
【回复】回复 @起个昵称这么费劲qwq : 当创建类或函数时,会自动生产prototype属性,prototype属性指向一个空的对象也就是原型对象,实例的内部属性[【prototype】]会继承prototype属性 同时也指向原型对象
【回复】确实,懂是懂了,不知道该从何说起,怎么去表达
风不会停息得:
今天面试被问到原型没答出来,现在会了!

【回复】我也没答出来,现在看到懂了一些
力帆尼:
这不一胎生上80个 对不起这高产的教学

前端复:
当我们的变量 instanceof 一个类的时候,它的返回值如果能在对象的原型上,找到这个类的prototype,返回值即为true[微笑]

这是高手哇:
//当查找对象的属性时,会按照一定的顺序: // 1. 先在对象本身上找 // 2. 到构造函数内部找(要带this) // 3. 到对象的原型 和 构造函数的原型上找(谁写在后面谁的权重高) // 4. 向上层原型中找 // 5. 再找不到就返回 undefined let o = new Fun(); o.name = '权重第一'; //1.对象本身 function Fun() { //构造函数 this.name = '权重第二'; //2.构造函数内部 } //3.谁写在下面谁胜出 o.__proto__.name = '对象的原型权重和函数的原型权重相同,后面的覆盖前面的!'; //对象的原型 Fun.prototype.name = '函数的原型权重和对象的原型权重相同,后面的覆盖前面的,写在下面的获胜'; //函数的原型 //4.以上都没有则向上原型中找 Object.prototype.name = '向上原型中找'; //5.实在找不到则返回 undefined //此处 o.name 输出什么 ? console.log(o.name);

孑孓烟西:
https://juejin.cn/post/7254443448563040311 这篇博客说的很清楚,大家可以去学习

遗憾比吃过的盐还多:
为啥我的显示是[【Prototype】] 而不是__proto__

一心只想搞学习1:
每个对象都有一个隐式原型,等于构建出这个实例的类的显示原型

亖惢:
老师,为什么__proto__: Person 明明是Teacher.prototype?

夕颜紫陌:
如果问你:请在不用“原型”这两个字的前提下解释什么是原型。 该怎么回答?

知识分享官 编程 前端 JS WEB JAVASCRIPT 经验分享 VUE WEB前端 打卡挑战

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!