js 原型链
Posted Develon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 原型链相关的知识,希望对你有一定的参考价值。
前言
- 原型链初步
一个对象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 原型链的主要内容,如果未能解决你的问题,请参考以下文章