面试中如何去回答原型链这个问题的思考
问题的场景
面试中问到了关于原型链的什么
我的回答如下:
所有的JS对象都有一个prototype属性,指向它的原型对象。当试图访问一个对象的属性时,如果没有在该对象上找到,它还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。在这个查找的过程中形成的链式结构就被称作原型链
但是面试官接下来没有继续问我问题,所以现在就很尴尬,我觉得我回答的不够好,总觉得缺点儿什么,总觉得应该补充点儿什么
以下是我个人认为可以做补充的东西:
首先从什么是原型讲起,在高级程序设计里面,对于原型的理解是在函数的继承中讲到的
1、每个函数都会创建一个prototype树形,这个属性是一个对象,包含应该由特定引用类型的实例共享的属性和方法,也就是说这个对象是通过调用构造函数创建的对象的原型
2、原型的好处是:在原型上定义的属性和方法可以被实例共享
3、提一下原型的那个三角关系:
只要创建一个函数,就会为这个函数创建一个prototype属性, 在默认情况下,所有的原型对象都会自动获得一个名为constructor的属性,指回与之关联的构造函数,XXX.prototype.constructor指向函数,函数的实例会通过__proto__指向构造函数
4、提上面说到的原型链
5、原型链方便代码自己去调用共享每种数据类型(就是对象啦)的方法、属性
以上是个人拙见吧
参考: js高级程序设计4
面试中如何去回答原型链这个问题的思考相关推荐
- 在面试中,如何回答最常见的问题?
面试是找工作过程中最重要的一环,成功的面试可以让你更接近你梦想的工作.但是,即使你有着出色的工作经验和学历,如果你不知道如何回答常见的面试问题,你也许无法展现出你的真实能力.在面试中,如何回答最常见的 ...
- 【职场】面试中最难回答频率最高的70个问题
1.请你自我介绍一下你自己, 回答提示:一般人回答这个问题过于平常,只说姓名.年龄.爱好.工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能.最深入研究的知识领域 ...
- JS中关于构造函数、原型链、prototype、constructor、instanceof、__proto__属性
在Javascript不存在类(Class)的概念,javascript中不是基于类的,而是通过构造函数(constructor)和原型链(prototype chains)实现的.但是在ES6中引入 ...
- 非技术性的面试中的技巧性回答集锦(建议收藏)
1.请你自我介绍一下你自己? 回答提示:一般人回答这个问题过于平常,只说姓名.年龄.爱好.工作经验,这些在简历上都有.其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能.最深入研究的知识领域 ...
- JS中的继承与原型链
对于原型我们通过[[prototype]].proto 以及 prototype 这三个概念理解其实现继承的思路. [[prototype]] 在 ECMAScript 标准中规定每个对象都有一个内置 ...
- js中的对象、原型链机制、构造函数
一.在js中创建对象的方式 //一.字面量或直接量创建对象var obj1 = {name:"zs",age:12}; //二.通过new来创建对象var obj2 = new O ...
- 简析面向对象中的继承,原型链,闭包之继承
为什么80%的码农都做不了架构师?>>> 我们理解的继承简单来说就是拿来主义:自己没有,别人有,把别人的拿过来使用或者让其成为自己的.那么如何实现继承呢? 一,混入继承 由于一 ...
- JavaScript中的经典题型(类数组、CSS Sprites、事件委托、经典去重、原型链、闭包、深浅克隆、附带思路流程和源码)
JavaScript中的经典题型 一.JavaScript中的经典题型 1..如何判断一个数组和类数组? 首先要明白什么是类数组. 类数组:类数组是一个普通对象,他的原型是Object.而真实的数组是 ...
- 关于Object.create()与原型链的面试题?
原文地址 https://segmentfault.com/q/1010000004670616?utm_source=weekly&utm_medium=email&utm_camp ...
最新文章
- 深度学习下的医学图像分析 2
- android java file 清理垃圾获取文件大小 删除文件等操作
- ecshop“发货查询”中加入收货人、收货地址、发货时间、配送方式
- 2017寒假第一篇随笔(寒假作业一)
- MarkDown 公式书写
- Oracle 原理:游标,显示游标、隐式游标、参照游标
- 将数字转化为液晶显示屏的样子
- C 语言中可以调用命令行指令的 system()函数
- FullCalendar 三:FullCalendar应用——读取JSON数据
- oracle 10g安装需注意细节
- Asp.net夜话之一:asp.net介绍
- 003:枚举算法(习题)
- 遗传算法实践详解(deap框架初体验)
- mysql 批量插入(记录帖)
- 通过TCP网络协议实现控制台多人聊天功能,另附私聊@功能。(java)
- 入门级移动App服务器的软硬件需求
- Trading Convexity for Scalability
- python经典代码
- 入门理解计算机视觉、图形学、图像处理
- LaTeX使用CJK支持中文排版
热门文章
- 电脑不识别移动硬盘--解决了
- 脚踏实地《数据结构第二章》第一节:线性表的定义和基本操作
- Metricbeat 8.4.0 linux 安装(Metricbeat-part1)
- ”广告电商“商业模式及逻辑
- 小评最近很火的BERT模型
- 建网站需要学习的软件有哪些
- 什么是HDMI延长器?HDMI延长器应用在什么场合
- 正则表达式匹配不包含某些字符串的技巧
- 【CAD开发】gltf文件格式的转换工具汇总(js、python、c++)
- 如何用python执行macro_python与macro宏调用