原型链 与 instanceof 运算符

原型链是JavaScript中实现继承的一种方式,它描述了对象属性查找的规则,从实例对象本身开始,沿着__proto__指向的原型对象逐级查找,直到找到属性或到达Object.prototype。instanceof运算符则用来检测一个实例是否在某个构造函数的原型链上,返回值为布尔类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原型链

        概念:基于原型对象的继承使得不同构造函数的原型对象关联在一起,并且这种关联的关系是一种链状的结构,我们将原型对象的链状结构关系称为原型链
    原型链-查找规则:
        1.当访问一个对象的属性或方法时,首先要查找这个对象自身有没有该属性
        2.如果没有就查找他的原型(也就是 __proto__ 指向的 原型对象)
        3.如果还没有就查找 原型对象 的 原型 (Object的原型对象)
        4.依次类推一直找到 Object 为止 (null)
        5.__proto__ 对象原型的意义就在于为对象成员查找机制提供一个方向,或者说一条路线
        6.可以使用 instanceof 运算符用于检测构造函数的 prototype 属性是否出现在实例对象的原型链上

原型链图示:

 原型链图示:来源于pink老师

instanceof 运算符

        instanceof 运算符 :检测实例对象是否在某条原型链上
        语法:实例对象 instanceof 构造函数
        参数: object(某个实例对象)  constructor(某个构造函数)
        返回值: true(实例在原型链上)  false(实例不在原型链上)

代码模块展示:

    <script>
        // instanceof 运算符 检测该实例是否在某条原型链上
        // 语法:实例对象 instanceof 构造函数
        // 参数: object(某个实例对象)  constructor(某个构造函数)
        // 返回值: true(实例在原型链上)  false(实例不在原型链上)
        console.log([1, 2, 3] instanceof Array)  // true
        console.log({ name: 'zhangsan', age: 15 } instanceof Object) // true
        console.log([1, 2, 3] instanceof Object)  // true
        console.log({name: 'zhangsan', age: 15} instanceof Array) // false
    </script>


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值