js对象中 _proto_ 和 prototype 区别

_proto_:

所有构造器/函数的proto都指向Function.prototype,它是一个空函数(Empty function)

Number.__proto__ === Function.prototype  // true
Boolean.__proto__ === Function.prototype // true
String.__proto__ === Function.prototype  // true
Object.__proto__ === Function.prototype  // true
Function.__proto__ === Function.prototype // true
Array.__proto__ === Function.prototype   // true
RegExp.__proto__ === Function.prototype  // true
Error.__proto__ === Function.prototype   // true
Date.__proto__ === Function.prototype    // true

Function本身就是函数,Function.proto是标准的内置对象Function.prototype。

console.log(typeof Function.prototype) // function

Function.prototype.proto是标准的内置对象Object.prototype。

console.log(Function.prototype.__proto__ === Object.prototype) // true

Object.prototype是原型链的顶端,所有对象从它继承了包括toString等等方法和属性。

Object.prototype.__proto__ === null  // true
image

对象的__proto__指向自己构造函数的prototype。obj.__proto__.__proto__...的原型链由此产生,包括我们的操作符instanceof正是通过探测
obj.__proto__.__proto__... === Constructor.prototype
来验证obj是否是Constructor的实例

prototype:

只有函数才有prototype属性.

当你创建函数时,JS会为这个函数自动添加prototype属性,值是空对象。

image

Function.prototype和Function.proto都指向Function.prototype,这就是鸡和蛋的问题怎么出现的。

Object.prototype.proto === null,说明原型链到Object.prototype终止。

Object本身是构造函数,继承了Function.prototype;Function也是对象,继承了Object.prototype。这里就有一个鸡和蛋的问题:

Object instanceof Function // true
Function instanceof Object // true

参考:

proto和prototype来深入理解JS对象和原型链

JavaScript中proto与prototype的关系

注意一点,this这个值在一个继承机制中(原型链与),仍然是指向它原本属于的对象,而不是从原型链上找到它时,它所属于的对象。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 至此仍别无长处,唯岁月尚久,但执拗认为不在我的立场,没有资格质疑我的选择。这是我的破庙,就算我要把它刷成花一样,你...
    楼安阅读 761评论 0 0
  • 每天进步一点点,坚持带来大改变,今天要学习的内容,是超实用读书笔记法。 我一直是个学渣,经常花很大力气学习,最后考...
    小玉成长记录阅读 2,732评论 2 0
  • 只要你好 我没有什么过不去的 我还要些什么 我的生命已经过了一少半了 我感觉这些只是转瞬间 我渴望你比我好 我承受...
    刘文娟阅读 1,410评论 0 1
  • 我的父亲,我并没有太多的印象,毕竟他去世时我不在身边,也还很小。并没有很多的伤感,相比较那些懂得情感的时候失去亲人...
    青山以南阅读 1,742评论 0 1
  • 一早醒来,刷了一会朋友圈,看着朋友各色生活“自拍”“美食拍”“美景拍”……生活又多了一丝丝温暖,带着暖意离开封印我...
    金津乐道阅读 1,144评论 0 0