js中的原形链问题
---恢复内容开始---
一、在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中的原形链问题的更多相关文章
- 浅析 JS 中的作用域链
作用域链的形成 在 JS 中每个函数都有自己的执行环境,而每个执行环境都有一个与之对应的变量对象.例如: var a = 2 function fn () { var a = 1 console.lo ...
- JS中的作用域链
在js中数据的声明方式有两种: 1.用var声明,例如:var num = 10: 2.直接声明,例如:num = 10: 两种声明方式在某些情况下是有区别的: var data = 10; func ...
- JS中注意原型链的“指向”
昨天压缩Js文件时发现了项目中的一个prototype的问题代码如下所示: 1. <script> var XXX = function(){ }; var x1 = new XXX(); ...
- 谈JS中的作用域链与原型链(1)
学习前端也有一段时间了,觉得自己可以与大家分享一些我当初遇到疑惑的东西,希望能给对此问题有疑惑的朋友带来一点帮助. 先来普及一下JS的概念(不要嫌我啰嗦,可能一些朋友开始学习JS是跟着视频和写好的代码 ...
- JS中的继承链
我们首先定义一个构造函数Person,然后定义一个对象p,JS代码如下: function Person(name) { this.name = name; } var p = new Person( ...
- 前端vue项目js中怎么保证链式调用后台接口
在一个for循环中对同一接口调用多次,如何保证逐步执行,同步执行. html部分 <DcFileUpload v-for="(item, index) of fileLengthLis ...
- JS中的原型链和原型的认识
这篇文章主要是学习一下JavaScript中的难点------原型和原型链 自定义一个对象 我们学习一门编程语言,必然要使用它完成一些特定的功能,而面向对象的语言因为符合人类的认知规律,在这方面做得很 ...
- 理解js中的原型链,prototype与__proto__的关系
说到prototype,就不得不先说下new的过程. 我们先看看这样一段代码: 1 <script type="text/javascript"> 2 var Pers ...
- 【转】理解js中的原型链,prototype与__proto__的关系
说到prototype,就不得不先说下new的过程. 我们先看看这样一段代码: 1 <script type="text/javascript"> 2 var Pers ...
随机推荐
- linux内核调试技巧之addr2line
addr2line工具是一个可以将指令的地址和可执行影像转换为文件名,函数名和源代码行数的工具.这在内核执行过程中出现崩溃时,可用于快速定位出出错的位置,进而找出代码的bug. 用法 addr2lin ...
- android中MVP模式
http://blog.csdn.net/ysh06201418/article/details/46534799 Android App整体架构设计的思考 http://blog.csdn.ne ...
- scichart by Kline
<UserControl x:Class="Abt.Controls.SciChart.Example.Examples.IWantTo.CreateMultiseriesChart. ...
- 剑指 Offer 题目汇总索引
剑指 Offer 总目录:(共50道大题) 1. 赋值运算符函数(或应说复制拷贝函数问题) 2. 实现 Singleton 模式 (C#) 3.二维数组中的查找 4.替换空格 ...
- 查询sql2005&2008全部表信息
如果是查询sql server ,把sys.extended_properties修改为SysProperties SELECT 表名 THEN D.NAME ELSE '' END, 表说明 THE ...
- ESET使用
杀毒软件换了好几次,小红伞到ESET,感觉小红伞也可以但是就是更新上一直有些问题,所以狠心换成了ESET,这个安全套装感觉还是有模有样的.
- unity 读取文本与写入文本
void writeData(string str,string file) { string parth = Application.dataPath; Strea ...
- html&css基础知识
***定义字符编码:一般为UTF-8(年国际通用编码) ***响应式界面:可以智能地根据用户行为以及使用的设备环境(系统平台.屏幕尺寸.屏幕定向等)进行相对应的布局,可以兼容多个终端. 在websto ...
- Spark Streaming源码解读之No Receivers彻底思考
本期内容 : Direct Acess Kafka Spark Streaming接收数据现在支持的两种方式: 01. Receiver的方式来接收数据,及输入数据的控制 02. No Receive ...
- JVM 垃圾回收器工作原理及使用实例介绍(转载自IBM),直接复制粘贴,需要原文戳链接
原文 https://www.ibm.com/developerworks/cn/java/j-lo-JVMGarbageCollection/ 再插一个关于线程和进程上下文,待判断 http://b ...