1. Object is an instance of Function.
2. Object does not have a property called constructor so when we call Object.constructor, it actually gives us Object.[[prototype]].constructor (akaObject.__proto__.constructor).
3.Object.constructor (aka Object.__proto__.constructor) is an instance of Function.
4. Since both Object and Object.constructor (aka Object.__proto__.constructor) are instances of Function therefore they both have a __proto__ property which refer to the same object. In other wordsObject.__proto__ === Object.constructor.__proto__ (aka Object.__proto__.constructor._proto_)
5.The line Object.constructor===Object.constructor.constructor is actually equal to the lineObject.__proto__.constructor===Object.constructor.__proto__.constructor
6. combining steps 4 and 5 give us Object.constructor===Object.constructor.constructor
7. goto step4
所以:Function.constructor == Function.prototype.constructor 返回 true.
JavaScript:Object.constructor == Object.prototype.constructor 返回 false
最新推荐文章于 2024-05-05 09:36:51 发布