1. 一切函数都是对象
2. 一切对象都是由函数创建的,所有函数都是由Function创建的,每个函数都是一个Function对象。
3. 对象.__proto__ === 函数.prototype
4. 函数有一个prototype属性,也是对象,这个对象默认的有一个constructor属性,指向函数本身
5. 对象都有 __proto__ 属性 ,指向创建出这个对象的函数的prototype
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
1. Object.prototype 也是对象,但是Object.prototype.__proto__ === null
2. 函数也是对象,函数对象.__proto__ === 创建出这个对象的函数(Function).prototype
3. Function也是对象,也有__proto__ 所以:Function.__proto__ === Function.prototype,自己创建自己
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
1. function Foo(){}//构造函数
2. var f1 = new Foo();//f1对象 由Foo()创建
3. f1.__proto__ === Foo.prototype
4. 一切函数都是对象,Foo构造函数也是对象,由Function创建,所以,Foo.__proto__ === Function.prototype
例子:var f2 = new Function('x','y','return x+y;');
5. Foo.prototype当然是对象,所以,Foo.prototype.__proto__ === Object.prototype,
例子:var obj = new Object();
6. 特例:Object.prototype也是对象,但是 Object.prototype.__proto__ === null
7. var obj1 = new Object();//或者简写:var obj1 = {};
8. obj1.__proto__ === Object.prototype //对象的 __proto__ 指向 创建出这个对象的函数
9. Object 是一个构造(函数),每个函数都是一个Function对象, var 函数 = new Function(),Object 是Function构造出来,所以:Object.__proto__ === Function.prototype
10. 所有函数都是被 Function 创建的, 而Function 本身是函数,  Function是被自己创造自己,函数又都是对象,所以,Function.__proto__ === Function.prototype
11. 最后总结:先有Object.prototype(原型链顶端),
然后Function.prototype继承Object.prototype而产生,
最后,Function构造函数和Object构造函数和其它构造函数继承Function.prototype而产生。

转载于:https://www.cnblogs.com/chaosJS/p/9265586.html

JavaScript 中的原型(总则)相关推荐

  1. JavaScript中的原型(prototype)与继承

    在JavaScript中,原型是用来模仿其他「类」语言继承机制的基础.原型并不复杂,原型只是一个对象. 一.原型对象 1.1 什么是原型对象 每当我们创建了一个函数后,这个函数就拥有了一个protot ...

  2. 理解JavaScript中的原型继承(2)

    两年前在我学习JavaScript的时候我就写过两篇关于原型继承的博客: 理解JavaScript中原型继承 JavaScript中的原型继承 这两篇博客讲的都是原型的使用,其中一篇还有我学习时的错误 ...

  3. JavaScript中的原型和继承

    请在此暂时忘记之前学到的面向对象的一切知识.这里只需要考虑赛车的情况.是的,就是赛车. 最近我正在观看 24 Hours of Le Mans ,这是法国流行的一项赛事.最快的车被称为 Le Mans ...

  4. 理解JavaScript中的原型与原型链

    理解JavaScript中的原型与原型链 原型链是一种机制,指的是JavaScript中每个内置的对象都有一个内置的__proto__属性指向创建它的构造函数的prototype(原型)属性.原型链的 ...

  5. 理解原型设计模式以及JavaScript中的原型规则

    原型规则 原型规则 所有的引用类型(数组.对象.函数),都具有对象特征,即可自由扩展属性: var arr = []; arr.a =1; 所有的引用类型都有对象的特性,即可自由扩展 所有的引用类型都 ...

  6. 在JavaScript中使用“原型”还是“ this”?

    之间有什么区别 var A = function () {this.x = function () {//do something}; }; 和 var A = function () { }; A. ...

  7. js实现html模板继承,理解JavaScript中的原型和继承

    本文主要讲了原型如何在JavaScript中工作,以及如何通过[Prototype]所有对象共享的隐藏属性链接对象属性和方法:以及如何创建自定义构造函数以及原型继承如何工作以传递属性和方法值. 介绍 ...

  8. JavaScript中的原型和对象机制

    1 对象相关的一些语言特性 1.1 一切皆为对象 JavaScript里所有的东西都是对象. 对象是属性的集合. 数字, 字符串, 布尔值等原始值是"伪对象", 它们同样拥有属性, ...

  9. javascript原型_在JavaScript中冻结原型时会发生什么

    javascript原型 Have you wondered what happens when you freeze the prototype of an object? Let's find o ...

  10. 说一说JavaScript 中的原型ProtoType

    一时兴起,写一遍博客吧. "函数是函数,函数也是对象" 相信学过js 的同学看到这句话很熟悉.我表示耳朵都听出茧子了. 我们都知道,在JavaScript中是没有类的概念的,那么怎 ...

最新文章

  1. 继承和多态 2.0 -- 继承的六个默认成员函数
  2. 最新发布| Jira官宣中国区本地部署特殊政策,公布Data Center价格
  3. python将一个数组纵向切割_python – 对如何切割numpy数组感到困惑
  4. Openstack组件实现原理 — Glance架构(V1/V2)
  5. boost::graph模块使用write_graphviz 输出 BGL adjacency_list 的简单示例
  6. Linux报错./configure: error: C compiler cc is not found
  7. util中注入service
  8. Net平台下的B/S开发框架
  9. bzoj 3679: 数字之积
  10. 2.Servlet(一)
  11. (day 32 - 位运算 )剑指 Offer 56 - I. 数组中数字出现的次数
  12. Android 4.0平板,Android4.0.3系统_平板电脑_平板电脑评测-中关村在线
  13. 热敏电阻温度采集简述
  14. 2021-2022 AI工程师薪水趋势:美国、印度、加拿大等
  15. 移动应用跨平台框架江湖将现终结者?速来参拜来自Facebook的React Native
  16. BugKu CTF(杂项篇MISC)—啊哒
  17. 软件配置管理(一)配置管理概念与目标
  18. 一个niubility的Vue游戏,真厉害!
  19. 硬盘格式化后能恢复数据吗?分享一些实用方法
  20. unity 传输图片到本地服务器并生成二维码

热门文章

  1. Java设计模式——迭代器模式
  2. Java 容器之Hashset 详解.
  3. python的垃圾处理机制_Python语法入门之垃圾回收机制
  4. URLEncoder和URLDecoder(乱码处理)
  5. 哒螨灵使用注意事项_杀螨最优组合,老的、少的、没出生的,都管用
  6. 路由器上不了网?PPPoE协议了解一下
  7. 嵌入式 linux 程序不能运行,嵌入式Linux中在开发板上/usr/bin目录下不能运行自己交叉编译的程序...
  8. 在html页面比较两个时间戳,如何比较C中的两个时间戳?
  9. 云南省2021高考成绩查询时间,2021云南高考成绩什么时候几点可以查
  10. Python中字符串的介绍以及常见操作