js 原型链

2021-01-21 06:13

阅读:458

标签:field   另一个   log   等价   OLE   val   属性   console   对象   

前言

  • 原型链初步
    一个对象a会有一个__proto__属性指向另一个对象b, 当然, 如果这个对象b不为null, 那么它还会指向另一个对象c, 如此一来就形成了一条"原型链".
a.__proto__ => b, b.__proto__ => c, c.__proto__ => d, d === null

什么是__proto__呢?

  • 对象
    对象由new一个Function实例, 或者通过直接对象值({ field: value })来产生, 后者等价于直接new Object.
({}).__proto__ === Object.prototype
// true

Code

        class B {
            constructor() {
                this.b = ‘bbb‘;
            }
        }
        class A extends B {
            constructor() {
                super();
                this.a = ‘aaa‘;
            }
        }
        let a = new A();
        console.log(a.__proto__ === A.prototype); // true
        console.log(a.__proto__.__proto__ === Object.prototype); // false
        console.log(a.__proto__.__proto__.__proto__ === Object.prototype); // true
        let b = new B();
        console.log(b.__proto__ === B.prototype); // true
        console.log(b.__proto__.__proto__ === Object.prototype); // true

END

js 原型链

标签:field   另一个   log   等价   OLE   val   属性   console   对象   

原文地址:https://www.cnblogs.com/develon/p/13297639.html


评论


亲,登录后才可以留言!