说⼀下 JavaScript 原型,原型链的理解?

本文探讨JavaScript中显式原型prototype、隐式原型__proto__及constructor的作用,介绍原型链的概念,通过实例解析如何查找和继承属性。

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

1. prototype 显式原型

   每个函数都有一个 prototype 属性,被称为显式原型,里面包含了这个构造函数公共的方法

2. \_ _proto_ 隐式原型

   每个实例对象都会有\_ _proto_ _属性,其被称为隐式原型

   每一个实例对象的隐式原型\_ _proto_ _属性指向自身构造函数的显式原型 prototype

3. constructor

   每个 prototype 原型都有一个 constructor 属性,指向它关联的构造函数。

4. 原型链

   获取对象属性或者方法的时候,如果对象本身没有这个属性,那就会去他的原型\_ _proto_ _上去找,如果还查不到,就去找原型的原型,一直找到最顶层(Object.prototype)为止。Object.prototype 对象也有_ _proto_ \_属性值为 null。

<script>
        function fun1() {
            console.log(111);
        }
        // console.log(fun1.prototype);

        let obj = {
            name: "小明",
        };

        function Houyi(color) {
            this.color = color;
        }
        Houyi.prototype.kill = function () {
            alert("后羿会射箭,这个后羿的头发颜色是" + this.color);
        };
        console.log(Houyi.prototype);

        // 构造函数上有一个对象叫做原型,原型上的属性和方法能够被所有的实例化对象共享
        // 原型中除了有共享的方法和属性外 还有一个constructor属性指向构造函数本身
        let sundy = new Houyi("白色");
        console.log(sundy.__proto__);
        console.log(sundy.toLocaleString());
        //原型链:就是当实例对象使用一个方法的时候 如果自己有就用自己的 自己没有 看父类 有没有 父类也没有的话 找到顶层也就是object 看object 有没有 object也没有这个方法的话那就是undefined就会报错
        console.log(sundy);
    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值