前端开发面试总结(六)
prototype和__proto__的区别和联系
重点:函数
- 一、每个对象都有一个__proto__属性,包括函数也是对象,也有__proto__属性。
- 二、每个构造函数都有一个prototype方法。
- 三、每一个对象的__proto__属性都指向自身构造函数的prototype。(obj.__proto__等于function.prototype)
一、概念
protoprototype
- 对象特有
- 该属性指向对象自己的构造函数的prototype
- 因此对象能够从prototype中继承属性和方法
prototypecode
- 该属性是函数特有
- 该属性能够用于存储须要被共享的属性和方法
constructor对象
- 函数特有,定义在prototype里面
- 使用new建立实例的时候,实例会继承prototype中的属性和方法
二、既是函数也是对象
Object:既是对象,也是构造函数继承
- 做为对象:
Object.__proto__ === Function.prototype
- 做为函数:
Object.prototype
是原型链的顶端,Object.prototype.__proto__ === null
Function:既是对象,也是构造函数原型链
- 做为对象:
Function.__proto__ === Function.prototype
- 做为函数:
Function.prototype
的函数和属性能够被实例共享,Function.prototype.__proto__ === Function.
欢迎关注本站公众号,获取更多信息