ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 原型链 原型对象也有__proto__,那么原型对象的__proto__又指向谁呢 ? ``` function Person(name, age) { this.name = name; this.age = age; } Person.prototype.show = function () { console.log(this.name); } var p1 = new Person('jack', 20); //构造函数的原型对象Object console.log(p1.__proto__.__proto__); ``` ![](https://box.kancloud.cn/1cfbce0694c9e4cc9bbdd7f74a2b5fed_1624x524.png) ## 原型对象的最顶层原型对象是null 串起来形成一个链,这就是原型链.当我们获取一个成员的时候,通过原型链就层层往上查找. ![](https://box.kancloud.cn/783d58b4a1861ff92afa11671c6883b5_808x456.png) ``` function Person() { } var p1 = new Person(); console.log(p1.__proto__.__proto__ === Object.prototype); //true ``` ## toString方法 ``` function Person() { } var p1 = new Person(); console.log(p1.toString()) ``` 结果 , 前面的object代表是一个对象,后面的Object代表的是类型. ![](https://box.kancloud.cn/85865c59938f70363e39671991edcc7c_388x70.png)