haizlin/fe-interview

[js] 第232天 举例说明constructor和instanceof的区别是什么?

haizhilin2013 opened this issue · 3 comments

第232天 举例说明constructor和instanceof的区别是什么?

我也要出题

  • constructorobject 的属性之一,instanceof 是运算符
  • constructor 的结果是方法,instanceof 的结果是布尔值
  • constructor 获取的是原型链的最顶层,instanceof 可以判断是否属于原型链的任意一层

我的答案

  1. 简述constructor和instanceof
    constructor是除了空对象都拥有的属性,该属性指向的是对象的构造函数。
    instanceof是一个操作符,用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。

  2. 他们的区别
    结果值:constructor的值是一个函数,instanceof的结果值是一个布尔值。
    检测范围:constructor可以检测某个函数是否是一个对象的构造函数。instanceof 可以检测实例对象整条原型链的任意一层。
    检测本质:constructor属性值是可以修改的,使用instanceof检测时不会因为constructor的改变而受到影响。

constructor 是返回实例的构造函数, instanceof是操作符,用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。
constructor是一个函数,instanceof返回的是一个布尔值。
constructor 获取的原型链的最顶层,instanceof可以是原型链中的任意层。