---恢复内容开始---

一、在js中大家讨论的原形链都是围绕在prototype和__proto__。

1、__proto__是内部原型

2、prototype是构造器原型(构造器就是构造函数)

3、所有的构造器(构造函数)的__proto__都指向Function.prototype

4、所有的构造器(构造函数)都可以被看做是由Function()创建(new ==>  fn = new Function()  ,obj = new Function() )

5、现在关于Function()的问题来,Function()的protoype是Function.protoype,然后Function.protoype的constructor是Function(),现在头疼的事情来了,由上可以得出结     论 Function()是由Function()创造出来的,着让人很难接受,相当于自己创造了自己。这也是js中比较难理解的一项了。

6、在js中什么都可看做是对象,那么Function.protoype是原型对象,那么他的__proto__又是谁呢?他的__proto__是Object.prototype,那么他的constructor是谁呢?答

案是 Object(),而Object()又是由Function()创造出来的,所以他的__proto__是Function.protoype。

二 、总结

1、看着上面这些逻辑叙述看着看着就乱了,来总结一下。

2、所有的构造函数都是由Function()创造出来的,也包括他自己。这些构造函数不但是函数而且也是对象所以他们的__proto__都是Function.protoype,protoype是自己本身       点上构造函数名。

3、所有的对象的__proto__最后都是继承自Object.prototype,他的__proto__是null,也就是到头了。

4、在原形链的继承关系中,函数不但是函数而且也是对象,所有构造函数的__proto__都继承自Function.protoype

5、所有对象的__proto__都继承自Object.prototype。

---恢复内容结束---

一、在js中大家讨论的原形链都是围绕在prototype和__proto__。

1、__proto__是内部原型

2、prototype是构造器原型(构造器就是构造函数)

3、所有的构造器(构造函数)的__proto__都指向Function.prototype

4、所有的构造器(构造函数)都可以被看做是由Function()创建(new ==>  fn = new Function()  ,obj = new Function() )

5、现在关于Function()的问题来,Function()的protoype是Function.protoype,然后Function.protoype的constructor是Function(),现在头疼的事情来了,由上可以得出结     论 Function()是由Function()创造出来的,着让人很难接受,相当于自己创造了自己。这也是js中比较难理解的一项了。

6、在js中什么都可看做是对象,那么Function.protoype是原型对象,那么他的__proto__又是谁呢?他的__proto__是Object.prototype,那么他的constructor是谁呢?答

案是 Object(),而Object()又是由Function()创造出来的,所以他的__proto__是Function.protoype。

二 、总结

1、看着上面这些逻辑叙述看着看着就乱了,来总结一下。

2、所有的构造函数都是由Function()创造出来的,也包括他自己。这些构造函数不但是函数而且也是对象所以他们的__proto__都是Function.protoype,protoype是自己本身       点上构造函数名。

3、所有的对象的__proto__最后都是继承自Object.prototype,他的__proto__是null,也就是到头了。

4、在原形链的继承关系中,函数不但是函数而且也是对象,所有构造函数的__proto__都继承自Function.protoype

5、所有对象的__proto__都继承自Object.prototype。

js中的原形链问题的更多相关文章

  1. 浅析 JS 中的作用域链

    作用域链的形成 在 JS 中每个函数都有自己的执行环境,而每个执行环境都有一个与之对应的变量对象.例如: var a = 2 function fn () { var a = 1 console.lo ...

  2. JS中的作用域链

    在js中数据的声明方式有两种: 1.用var声明,例如:var num = 10: 2.直接声明,例如:num = 10: 两种声明方式在某些情况下是有区别的: var data = 10; func ...

  3. JS中注意原型链的“指向”

    昨天压缩Js文件时发现了项目中的一个prototype的问题代码如下所示: 1. <script> var XXX = function(){ }; var x1 = new XXX(); ...

  4. 谈JS中的作用域链与原型链(1)

    学习前端也有一段时间了,觉得自己可以与大家分享一些我当初遇到疑惑的东西,希望能给对此问题有疑惑的朋友带来一点帮助. 先来普及一下JS的概念(不要嫌我啰嗦,可能一些朋友开始学习JS是跟着视频和写好的代码 ...

  5. JS中的继承链

    我们首先定义一个构造函数Person,然后定义一个对象p,JS代码如下: function Person(name) { this.name = name; } var p = new Person( ...

  6. 前端vue项目js中怎么保证链式调用后台接口

    在一个for循环中对同一接口调用多次,如何保证逐步执行,同步执行. html部分 <DcFileUpload v-for="(item, index) of fileLengthLis ...

  7. JS中的原型链和原型的认识

    这篇文章主要是学习一下JavaScript中的难点------原型和原型链 自定义一个对象 我们学习一门编程语言,必然要使用它完成一些特定的功能,而面向对象的语言因为符合人类的认知规律,在这方面做得很 ...

  8. 理解js中的原型链,prototype与__proto__的关系

    说到prototype,就不得不先说下new的过程. 我们先看看这样一段代码: 1 <script type="text/javascript"> 2 var Pers ...

  9. 【转】理解js中的原型链,prototype与__proto__的关系

    说到prototype,就不得不先说下new的过程. 我们先看看这样一段代码: 1 <script type="text/javascript"> 2 var Pers ...

随机推荐

  1. ASCIITable: 演示 Arduino 串口输出的进阶功能

    原文地址 - https://www.arduino.cc/en/Tutorial/ASCIITable ASCII字符表 本例展示了高级的串口打印功能,通过本功能可以在Arduino软件(IDE)的 ...

  2. Framework4.5语法糖 异步Task

    1.线程安全 在使用TaskRun的时候需要注意线程安全的问题. 线程安全通常是由全局变量及静态变量引起的,如果是值类型就不存在这样的隐患,如果是引用类型用不好就会导致线程不安全! 2.Task.Ta ...

  3. [转载]反无人机企业DroneShield利用声音识别侦测无人机

    原文:http://www.cnbeta.com/articles/495071.htm 无人机产业正在蓬勃发展,受益的不仅仅是那些生产小型飞行设备的企业.专家估计仅在澳大利亚就有5万架商用无人机以及 ...

  4. day9-协程

    生产者和消费者模型: #!/usr/bin/env python #coding:utf8 import threading,Queue import time import random def p ...

  5. Android UI 绘制过程浅析(五)自定义View

    前言 这已经是Android UI 绘制过程浅析系列文章的第五篇了,不出意外的话也是最后一篇.再次声明一下,这一系列文章,是我在拜读了csdn大牛郭霖的博客文章<带你一步步深入了解View> ...

  6. DispatcherServlet作用

    DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好 ...

  7. Silverlight 页面传值问题(转)

    共有两种方式来传递初始化参数 1)在html或者aspx页面中object对象中加入一下代码 参数格式:参数名 = 值,参数名 = 值,... <param name="initPar ...

  8. spring 定时器Quartz

    一.Quartz是什么 二.  核心接口 scheduler  --- 核心调度器 Job  --- 任务 JobDetail  --- 任务描述 Tigger  --- 触发器 三 . 核心接口之间 ...

  9. django 快速实现完整登录系统

    django 实现完整登录系统 本操作的环境: =================== Windows 7 64 python3.5 Django 1.10 =================== 创 ...

  10. oracle基础语法大全

    -----创建序列create sequence book_idINCREMENT BY 1 -- 每次加几个 START WITH 001 -- 从1开始计数 NOMAXVALUE -- 不设置最大 ...