JavaScript 理解prototype和"/>
JavaScript 理解prototype和
理解prototype和__proto__
对象类型 | prototype | __proto__ |
---|---|---|
函数对象 | Yes | Yes |
普通对象 | No | Yes |
- 只有函数对象具有
prototype
这个属性 prototype
和__proto__
都是 JS 在定义一个对象时的预定义属性prototype
被实例的__proto__
指向__proto__
指向构造函数的prototype
const a = function(){}
const b = {}typeof a // function
typeof b // objecttypeof a.prototype // object
typeof a.__proto__ // functiontypeof b.prototype // undefined
typeof b.__proto__ // objecta.__proto__ === Function.prototype
b.__proto__ === Object.prototype
理解了prototype
和__proto__
之后,我们来看看之前一直说的为什么 JS 里面都是对象,如下:
const a = {}
const b = function () {}
const c = []
const d = new Date()a.__proto__
a.__proto__ === Object.prototypeb.__proto__
b.__proto__ === Function.prototypec.__proto__
c.__proto__ === Array.prototyped.__proto__
d.__proto__ === Date.prototypeObject.prototype.__proto__ //nullFunction.prototype.__proto__ === Object.prototypeArray.prototype.__proto__ === Object.prototypeDate.prototype.__proto__ === Object.prototype
更多推荐
JavaScript 理解prototype和
发布评论