var Person = function(name){this.name = name; };Person.prototype.getName = function(){return this.name; }var person1 = new person('Mick');person1.getName();

提问:

person1.__proto__ 是什么?

​Person.__proto__ 是什么?
Person.prototype.__proto__ 是什么?
Object.__proto__ 是什么?
Object.prototype__proto__ 是什么?

答案:
第一题:
因为 person1.__proto__ === person1 的构造函数.prototype
因为 person1的构造函数 === Person
所以 person1.__proto__ === Person.prototype

第二题:
因为 Person.__proto__ === Person的构造函数.prototype
因为 Person的构造函数 === Function
所以 Person.__proto__ === Function.prototype

第三题:
Person.prototype 是一个普通对象,我们无需关注它有哪些属性,只要记住它是一个普通对象。
因为一个普通对象的构造函数 === Object
所以 Person.prototype.__proto__ === Object.prototype

第四题,参照第二题,因为 Person 和 Object 一样都是构造函数

第五题:
Object.prototype 对象也有proto属性,但它比较特殊,为 null 。因为 null 处于原型链的顶端,这个只能记住。
Object.prototype.__proto__ === null

 

JS 在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__ 的内置属性,用于指向创建它的构造函数的原型对象。

对象 person1 有一个 __proto__属性,创建它的构造函数是 Person,构造函数的原型对象是 Person.prototype ,所以:
person1.__proto__ == Person.prototype

所有函数对象的__proto__都指向Function.prototype,它是一个空函数(Empty function);

引用了下面的内容:

作者:Yi罐可乐链接:http://www.jianshu.com/p/652991a67186來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://www.cnblogs.com/wangxi01/p/7872563.html

小测试来检验一下你原型链理解的怎么样。相关推荐

  1. ES5常用的组合继承及原型链理解

    ES5常用的组合继承及原型链理解 <!DOCTYPE html> <html lang="en"><head><meta charset= ...

  2. 完美解决原型和原型链理解问题

    理解原型和原型链 原型和原型链学了很久,但是一直没有完全理解,虽然现在也没用完全理解,但能勉强对付一下了 这里面先参考一下 阮大大的教程 前言 要先从继承开始讲起,根据其他语言比如java或者c++来 ...

  3. 原型、原型对象、构造函数、原型链理解

    1. 基本概念: "原型属性"也可以叫做"原型"(prototype):所有函数都有prototype,我觉得可以理解为python中的类属性,不需要通过实例, ...

  4. JS原型链理解与实用

    关于JS的原型链自己也简单总结一下! 首先先上一张图,我第一次看这张图的时候原本就懵的我更懵了.可是我想说的是,尽管再懵,也还是要慢慢自己理解,最后才能拨开云雾见天日. 目前看不清除图没关系.先解释两 ...

  5. js原型对象和原型链理解

    参考:https://blog.csdn.net/yucihent/article/details/79424506 文章内的图是参考一个大神的 但是找不到链接了 一. 函数对象 所有引用类型(函数, ...

  6. JavaScript 原型对象和原型链理解

    一个例子让你彻底明白原型对象和原型链 1. 之前对js中的原型链和原型对象有所了解,每当别人问我什么是原型链和原型对象时,我总是用很官方(其实自己不懂)的解释去描述.有一句话说的好:如果你不能把一个很 ...

  7. JS原型与原型链理解

    前几天在看那个OL3的控件封装,感觉对愿原型和原型链有点忘记,js本身是没有类这个概念,所谓函数即对象,继承这个东西主要通过对象来完成,要是在C#,Java这类语言中这个就很好理解的 一,函数对象   ...

  8. JavaScript的原型与原型链理解

    简单描述了原型与原型链的理解,欢迎学习讨论. 构造函数 function A(){} 原型 构造函数都有prototype原型属性 A.prototype.name = 'wjx' 原型的 const ...

  9. 最详细的讲解 JS 原型与原型链

    文章目录 一. 普通对象与函数对象 二. 构造函数 三. 原型对象 四. proto 五. 构造器 六. 原型链 七. Prototype 总结 一. 普通对象与函数对象 JavaScript 中,万 ...

最新文章

  1. python入门第二天__练习题
  2. UA MATH567 高维统计I 概率不等式3 亚高斯性与亚高斯范数
  3. 科大星云诗社动态20220110
  4. python的列表和元组
  5. ​电赛 | 19年全国一等奖,北航学子回忆录(上)
  6. 调用wasm_PDX Utopia区块链协议栈使用Solidity调用wasm智能合约
  7. Android修改项目包名
  8. 一块GPU模拟猴子大脑,普通台式机变超算,英国大学研究登上Nature子刊
  9. centos 安装mysql扩展_centos php安装mysql扩展的方法
  10. 反思 大班 快乐的机器人_幼儿园大班健康教案《有趣的椅子》含反思
  11. CXF生成本地ws调用代码测试webservice
  12. Error configuring application listener of class org.springframework.web.context.ContextLoaderListene
  13. centos7中使用LVM管理磁盘和挂载磁盘
  14. 空气投影+生物识别,支付宝的“如影计划”还有多少硬仗要打?
  15. svn 回滚文件修改
  16. 【python+selenium】保留浏览器的自定义设置,不恢复浏览器默认设置
  17. Android TextView设置背景色和边框
  18. 生活中的思维导图—读后感
  19. 【第三方互联】9、新浪微博(sina)授权第三方登录
  20. 【Verilog基础】CDC跨时钟域问题,个人理解总结(下)(数据丢失、多路扇出、异步复位解决方案)

热门文章

  1. 网站显示mysql数据库_如何显示从MySQL数据库的网站iframe?
  2. eclipse 的习惯配置
  3. 【旧文章搬运】Windbg+Vmware驱动调试入门(一)---Windbg的设置
  4. Missing message for key xxx in bundle (default bundle) for locale zh_CN
  5. mysql--字段--索引的增删改查
  6. 《JS权威指南学习总结--第八章 函数》
  7. echo,printr,print_r之间的区别
  8. Snow White,摘自iOS应用Snow White and more stories
  9. 用vue制作饿了么首页(1)
  10. tomcat 和apache的整合的方法及配置(一)