为什么a.__proto__.constructor.__proto__.apply不等于a.apply

kuacoco
  • 7

Js新手 学习原型链过程遇到如下问题
let A = function(){};
let a = new A();
为什么a.__proto__.constructor.__proto__.apply不等于a.apply

回复
阅读 1.6k
2 个回答
aristotll
  • 5.9k
✓ 已被采纳
a.__proto__.constructor.__proto__.apply === Function.prototype.apply
true

分解一下

a.__proto__.constructor -> A
A.__proto__ -> Function.prototype

a 没有 apply 的属性的吧...

__proto__是一个内部属性,指向构造函数的原型,也就是prototype
a.__proto__ -> A.prototype
a.__proto__.constructor -> A
a.__proto__.constructor.__proto__ -> Function.prototype

A 函数也可以这样写 A = new Function();
A.__proto__ -> Function.prototype

宣传栏