Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情。
一、构造函数
二、原型规则
- 所有的引用类型(数组、对象、函数)(除null以外)都具有对象的特性,即自由扩展属性
- 所有的引用类型(数组、对象、函数)都有一个
__proto__属性(隐式原型),属性值时一个普通的对象 - 所有的函数都有一个
prototype属性(显式原型),属性值也是一个普通对象 - 所有引用类型(数组、对象、函数),
__proto__属性指向(完全等于===)它的构造函数的prototype属性 - 当试图得到一个对象的某个属性式,如果这个对象本身没有这个属性,那么就会去它的
__proto__属性(即它的构造函数的prototype属性)中寻找
原型使用示例如下:
- 使用for in可以循环对象自身的属性,在高级浏览器中for in屏蔽了来自原型的属性,但是为了保证程序的健壮性,建议使用
hasOwnProperty()方法结合if语句过滤掉原型的属性
三、原型链
instanceof方法
instanceof是用于判断引用类型属于哪个构造函数的方法(在原型链上查找)
四、面试题
(一)如何准确判断一个变量时数组类型
- 使用
instanceof方法
(二)写一个原型链继承的例子
(三)描述new一个对象的过程
- 创建一个新对象
- this指针指向这个对象
- 指向代码,即对this赋值
- 返回this