摘要:自定义一个构造函数利用上面的构造函数构造一个实例运算符的第一个变量是一个对象,暂时称为第二个变量一般是一个函数,暂时称为。
Instanceof运算符的第一个变量是一个对象,暂时称为A;第二个变量一般是一个函数,暂时称为B。Instanceof的判断规则是:沿着A的__proto__这条线来找,同时沿着B的prototype这条线来找,如果两条 线能找到同一个引用,即同一个对象,那么就返回true。如果找到终点还未重合,则返回false。
那我们来按照这个规则一个一个来验证上面的结果:
注意:每个函数都有一个prototype属性(原型),是一个对象,每个对象都有一个__proto__(隐式原型),指向它的构造函数的 prototype,对象没有prototype
1、fun1 instanceof Fun
fun1.__proto__=Fun.prototype
Fun.prototype
从上可以看出,fun1和Fun最后找到了同一个引用---Fun.prototype
注意:因为prototype是一个对象,所以它的__proro__就是Object.prototype
2、fun1 instanceof Function
fun1.__proto__=Fun.prototype ===>Fun.prototype.__proto__={ }.__proto__=Object.prototype
Function.prototype
可以看出fun1和Fun最后没有同一个引用
注意:Function.prototype还是指向Function.prototype
3、fun1 instanceof Object
fun1.__proto__=Fun.prototype ==> Fun.prototype.__proto__={ }.__proto__=Object.prototype
Object.prototype
从上可以看出,fun1和Object最后找到了同一个引用---Object.prototype
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/106645.html
摘要:一是如何工作的在上是这样描述的运算符用于测试构造函数的属性是否出现在对象原型链中的任何位置换句话说,如果,那么必须是一个对象,而必须是一个合法的函数。下面我们举一个例子一步步来说明第一步每一个构造函数都有一个属性。 在 JavaScript 中,我们通常用 typeof 判断类型,但是在判断引用类型的值时,常常会遇到一个问题:无论引用的是什么类型的对象,都会返回 object(当然还有...
摘要:对象类型常见的有,,,正则新增自己提供的乐行判断如果不对对象做严格区分使用。的实现使用了原型继承的表示左表达式,表示右表达式,它是用是否等于来判断对象的类型的。常见框架和库的实数据类型判断测试这里将的实现原理抽取出来,用原生实现。 JavaScript一共有六种数据类型,分为原始类型(又名基本类型)和对象类型(又名引用类型) 原始类型有五种,分别为number,string,boole...
摘要:基本数据类型引用类型判断数据类型的方法判断中的数据类型有一下几种方法接下来主要比较一下这几种方法的异同。通常情况下用判断就可以了,遇到预知类型的情况可以选用或方法实在没辙就使用方法。 基本数据类型:String、Number、Boolean、Symbol、undefined、Null引用类型:Object Array Function 判断数据类型的方法: 判断js中的数据类型有一...
摘要:基本数据类型引用类型判断数据类型的方法判断中的数据类型有一下几种方法接下来主要比较一下这几种方法的异同。通常情况下用判断就可以了,遇到预知类型的情况可以选用或方法实在没辙就使用方法。 基本数据类型:String、Number、Boolean、Symbol、undefined、Null引用类型:Object Array Function 判断数据类型的方法: 判断js中的数据类型有一...
阅读 2535·2021-11-22 12:05
阅读 3425·2021-10-14 09:42
阅读 1656·2021-07-28 00:15
阅读 1971·2019-08-30 11:08
阅读 1429·2019-08-29 17:31
阅读 902·2019-08-29 16:42
阅读 2283·2019-08-26 11:55
阅读 2091·2019-08-26 11:49