浅析typeof 和 instanceof的区别(一看就懂)

typeof 和 instanceof的区别

  1. typeof

简单来说就是用来测试变量的类型

常见的变量的类型有六种:
String
Number
Boolean
Object
Undefined
Function

使用typeof 进行检测 返回的是一个字符串的信息

let test = 123
console.log(typeof test) // number
  1. instanceof

简单来说就是 ----> 检测一个函数的原型是否存在与另一个对象的原型链当中

<script>

        function Grandefather(){}
        function Father(){}
        function Son(){}

        var g = new Grandefather()
        Father.prototype = g  //此处这个Father函数的原型 继承了 g 这个实例对象的原型链

        var f = new Father() // 然后新创建的实例就能能够 通过instanceof 检测该实例的原型是否存在于 Grandfather 的原型链上
        
        Son.prototype = f
        var s = new Son()
        
        console.log(f instanceof Grandefather) //true
        console.log(s instanceof Father) //true
        console.log(s instanceof Grandefather) //true

</script>

尤其要注意的是:先要使函数的原型改变,再去创建一个新的对象,不然上边的代码,打乱顺序的话就不成立了

instanceof可以对不同的对象实例进行判断,判断方法是根据对象的原型链依次向下查询,如果obj2的原型属性存在obj1的原型链上,(obj1 instanceof obj2)值为true。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值