对象描述:

1. 每个对象中都有一个_proto_属性。

JS世界中没有类(模具)的概念,对象是从另一个对象(原型)衍生出来的,所以每个对象中会有一个_proto_属性指向它的原型对象。(参考左上角的那个用字面量形式定义的对象obj,它在内存中开辟了一个空间存放对象自身的属性,同时生成一个_proto_指向它的原型——顶层原型对象。)

2. 每个函数都有一个prototype属性。

“构造函数”为何叫构造函数,因为它要构造对象。那么根据上面第一条事实,构造出来的新对象的_proto_属性指向谁了?总不能指向构造函数自身,虽然它也是个对象,但你不希望新对象继承函数的属性与方法吧。所以,在每个构造函数都会有一个prototype属性,指向一个对象作为这个构造函数构造出来的新对象的原型。

3. 函数也是对象。

每个函数都有一些通用的属性和方法,比如apply()/call()等。但这些通用的方法是如何继承的呢?函数又是怎么创建出来的呢?试想想,一切皆对象,包括函数也是对象,而且是通过构造函数构造出来的对象。那么根据上面第二条事实,每个函数也会有_proto_指向它的构造函数的prototype。而这个构造函数的函数就是Function,JS中的所有函数都是由Function构造出来的。函数的通用属性与方法就存放在Function.prototype这个原型对象上。

最新文章

  1. synthesize 与dynamic的区别
  2. 获取Ip地址
  3. 问得最多的十个JavaScript前端面试问题
  4. React基础语法学习
  5. Odoo Two ways to pop warning infomation
  6. Response.AddHeader使用实例
  7. iOS之NSURLSessionDownloadTask下载
  8. DbUtility-第一次接触
  9. HDU 4946 Area of Mushroom 凸包
  10. HDU 1176 免费馅饼(数塔dp)
  11. HTML5 CSS3 精美案例 : 实现VCD包装盒个性幻灯片
  12. 解决VS2010使用mscomm控件无法接收数据的问题【转】
  13. noip第16课资料
  14. tableView优化思路
  15. centos7.x docker安装及配置,持续更新
  16. kubernetes之deployment滚动升级
  17. win10下装上virtualbox 以及在virtualbox上装上 ubuntu 12.04
  18. [BZOJ1776][Usaco2010 Hol]cowpol 奶牛政坛
  19. DOM文档对象模型
  20. why inline functions must be put in header files?

热门文章

  1. 记录一次程序输出和DB查询不匹配的问题
  2. mysql数据库分区和分表
  3. python requests库爬取网页小实例:ip地址查询
  4. celery 应用
  5. .NET Core PartialView 与 Ajax
  6. BFC是什么及能用它能做什么
  7. Python模拟接口登录
  8. Spring in Action 第一章 Spring之旅
  9. 源码分析之groupcache之consistenthash
  10. 弹飞绵羊[HNOI2010]