对象的__proto__指向构造函数的 prototype。
对象才有__proto__,函数才有 prototype,而 js 中函数也是对象。
Function.prototype.a = 1;
Object.prototype.b = 2;
function A() {}
let obj = new A();
console.log(obj.a, obj.b)
console.log(A.a, A.b)
先想好上述代码的运行结果,再看下述代码。
Function.prototype.a = 1;
Object.prototype.b = 2;
function A() {}
let obj = new A();
// obj -- __proto__ —> A.prototype -- __proto__ -> Object.prototype
console.log(obj.a, obj.b) // undefined, 2
// A -- __proto__ -> Function.prototype -- __proto__ -> Object.prototype
console.log(A.a, A.b) // 1, 2