js中关于原型和原型链有 __proto__ 、prototype、constructor 频频出现在面试题中,但是记得多了反而容易记混。

这里简单总结下每个属性的使用场景,方便记忆。

  • 对象和函数都有 __proto__,对象的 __proto__指向构造函数的prototype,构造函数的__proto__指向 Function.prototype
  • 对象和函数都有constructor,对象的 constructor指向构造函数,构造函数的constructor指向 Function
  • 函数才有 prototype
  • 函数的prototype又是一个对象,但是 Funtion.prototype 不是对象!!!
  • 特殊记忆:typeof Function.prototype==="function"
  • Object因为O大写,可以看出本质也是一个构造函数
  • __proto__ 指向一个原型对象,构造函数.prototype.__proto__ === Object.prototype
  • 特殊记忆:Object.prototype.__proto__===null,因为Object.prototype 为js 原型链的顶端。

关于js与函数的关系,这里发现一篇文章写的很好,推荐。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。