开始记录学习过程——

  很详细的解析过程——https://juejin.im/post/5c72a1766fb9a049ea3993e6

  借鉴阅读——https://github.com/KieSun/Dream/issues/2

prototype

  显式原型属性。

  只有函数才拥有该属性

  当我们声明一个函数的时候,这个属性就被自动创建了,这个属性的值是一个对象(原型),且只有一个属性constructor

_proto_

  每个对象都有的隐式原型属性。

  指向了创建该对象的构造函数的原型

  通过_proto_将对象和原型联系起来组成原型链,得以让对象可以访问到不属于自己的属性

  实例对象如何产生_proto_的?

  ——使用new操作符,生成的实例对象便有了_proto_属性

    调用new过程发生四件事:

      新生成一个对象;

      链接到原型;

      绑定this;

      返回新对象;

  总结:

    Object是所有对象的父亲,所有对象都可以通过_proto_找到他。

    Function是所有函数的父亲,所有函数都可以通过_proto_找到他。

    Function.prototype和Object.prototype是两个特殊的对象,由引擎创建

    除了这两个,其余的对象都是通过new构造的

    函数的prototype是一个对象,也就是原型。

    对象的_proto_指向原型

  

js原型链、继承、this指向等老生常谈却依然不熟的知识点——记录解析的更多相关文章

  1. js原型链+继承 浅析

    名称:    prototype--原型对象    __proto__--属性 原型链与继承网上搜索定义,看起来挺绕的 .先说继承: 所有的对象实例都可以共享原型对象包含的属性和方法  例如一个实例A ...

  2. js原型链继承的傻瓜式详解

    本文争取用最简单的语言来讲解原型链继承的OOP原理 0.如果对原型继承还没有大致了解,完全一头雾水,请先阅读 <JavaScript高级程序设计>第六章最后部分的寄生组合式继承 或者_廖雪 ...

  3. [js]js原型链继承小结

    这是之前总结的, 发现有很多的毛病,就是重点不突出,重新翻看的时候还是得耗费很长时间去理解这玩意. js中的继承 js中什么是类 1,类是函数数据类型 2.每个类有一个自带prototype属性 pr ...

  4. JS原型链继承

    继承普通版 继承逻辑上都差不多,普通版调用方式比较繁琐,不利于反复大量的使用: (function (){ //创建一个人员类 function Person(name){ this.name = n ...

  5. js原型链继承及调用父类方法

    方法1: var Parent= function () { }; Parent.prototype.process = function(){ alert('parent method'); }; ...

  6. js原型链与继承(初体验)

    js原型链与继承是js中的重点,所以我们通过以下三个例子来进行详细的讲解. 首先定义一个对象obj,该对象的原型为obj._proto_,我们可以用ES5中的getPrototypeOf这一方法来查询 ...

  7. 深入理解JS原型链与继承

    我 觉得阅读精彩的文章是提升自己最快的方法,而且我发现人在不同阶段看待同样的东西都会有不同的收获,有一天你看到一本好书或者好的文章,请记得收藏起来, 隔断时间再去看看,我想应该会有很大的收获.其实今天 ...

  8. js继承之组合继承(结合原型链继承 和 借用构造函数继承)

    在我的前两篇文章中,我们已经介绍了 js 中实现继承的两种模式:原型链继承和借用构造函数继承.这两种模式都存在各自的缺点,所以,我们考虑是否能将这二者结合到一起,从而发挥二者之长.即在继承过程中,既可 ...

  9. js 原型链和继承(转)

    在理解继承之前,需要知道 js 的三个东西: 什么是 JS 原型链 this 的值到底是什么 JS 的 new 到底是干什么的 1. 什么是 JS 原型链? 我们知道 JS 有对象,比如 var ob ...

随机推荐

  1. python 机器学习(二)分类算法-k近邻算法

      一.什么是K近邻算法? 定义: 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. 来源: KNN算法最早是由Cover和Hart提 ...

  2. git :error: bad signature fatal: index file corrupt

    删除.git/index文件再执行: git reset 不行的话就执行: git read-tree  --empty https://stackoverflow.com/questions/213 ...

  3. 9.5 Go 依赖管理

    9.5 Go 依赖管理 godep是解决包依赖的管理工具,目前最主流的一种,原理是扫描记录版本控制的信息. A. 所有的第三方包都放在$GOPATH的src目录下. B. 如果不同程序依赖的版本不一样 ...

  4. BZOJ1078 斜堆

    http://hzwer.com/5790.html  代码 http://www.cppblog.com/MatoNo1/archive/2013/03/03/192131.html  //原理讲解 ...

  5. 首字母变大写(hdu2026)

    输入方式:直接循环输入带有空格的未知长度的字符串. 思考:直接循环输入带有空格的未知长度的字符串,用while(gets_s())函数,循环内外不用getchar()函数.(注意,每次字符串以整体输入 ...

  6. JavaScript数组常见用法

    最近做一个项目中做一个竞猜游戏界面,游戏规则和彩票是一样的.在实现“机选一注”,“机选五注”的时候遇到数组的一些操作,例如产生['01', '02' ... '35']这样的数组,随机抽取不重复的元素 ...

  7. MySQL/MariaDB随笔一

    1.yum 安装后先跑一下系统自带的安全脚本,否则数据库很不安全,任何人都可以登录 [root@xixi ~]# mysql_secure_installation NOTE: RUNNING ALL ...

  8. 【SocketIoClientDotNet】Nuget包安装问题

    问题: Nuget安装[SocketIoClientDotNet]失败 错误信息: Operation failed Expected 1 export(s) with contract name & ...

  9. android小Demo--圆球跟随手指轨迹移动

    eatwhatApp的客户端基本实现,会再后续进行整改,今天做一个在网上找到的小Demo,让屏幕中出现一个圆球,并跟随手指移动. 写个java类DrawView继承于View: public clas ...

  10. Matlab GUI程序设计入门——信号发生器+时域分析

    背景:学习matlab gui编程入门,完成一个基于GUIDE的图形化界面程序,结合信号生成及分析等. 操作步骤: 1.新建程序 新建一个GUIDE程序 这里选择第一个选项,即创建一个空白的GUIDE ...