javascript中的prototype和__proto__

  在javascript中函数也是对象,那么构造函数和对象是一种什么样的关系呢?

  在Object函数上有个实例方法hasOwnProperty,可以看到属性是否属于该对象,那么Object构造函数也想使用这个方法可以吗?当然没问题,但是那是为什么呢?

  当Object调用hasOwnProperty时,首先看自身有没有,也就是Object的实例方法中有没有,没有,就会根据__proto__找到Function的prototype,Functionprototype也没有,继续找,就是Function.prototype.__proto__,也就回到了ObjectPrototype,所以可以调用是当然的.

  

Object.prototype.__proto__ === null
Function.prototype.__proto__ === Object.prototype
Object.__proto__ === Function.__proto__ === Function.prototype

class A{}
const a = new A
a.__proto__ === A.prototype
A.__proto__ === Function.prototype
A.prototype.__proto__ === Object.prototype

  

posted @ 2021-03-04 20:11  nextYearToday  阅读(41)  评论(0)    收藏  举报