深入理解javascript prototype的相关知识


Posted in Javascript onSeptember 19, 2019

如图比较好的阐述了prototype和__proto__

简单的可以这么理解:

狗类A( function foo()),狗类A的模板描述:A.模板 (foo.prototype)是一个对象object, A.模板有个构造方法

foo.prototype.constructor=function foo()

动物B(function function()), 动物B的模板描述 . B.模板 (function.prototype), B.模板有个构造方法

function.prototype.constructor=function function()

狗C= new 狗类A (f1=new foo())

那么狗c的父类模板=A.模板 即 f1.__proto__= foo.prototype.

狗类A的父类模板=B.模板 即 foo.__proto__=function.prototype

只有函数有prototype,对象是没有的。

但是函数也是有__proto__的,因为函数也是对象。函数的__proto__指向的是Function.prototype。

也就是说普通函数是Function这个构造函数的一个实例。

__proto__可以理解为指向父类模板的一个引用。用来查找父类模板的

prototype可以理解为对象的一个属性,用来描述自身如果作为模板是如何定义的,该模板有方法和属性。

function foo() 自身如果作为模板prototype,它自身会有构建函数,模板的属性constructor就是描述这个构建函数。

foo()这个对象实际上是隐含从父类模板继承过来的,这个父类模板就是function function()的模板属性。即它的prototype.

深入理解javascript prototype的相关知识

设计者定义的时候名称比较混淆不利于理解。这是javascript的败笔。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
Jan 09 Javascript
HTML5之lang属性与dir属性的详解
Jun 19 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
Dec 25 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
Apr 29 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
Jun 05 Javascript
javascript动画之模拟拖拽效果篇
Sep 26 Javascript
微信小程序 表单Form实例详解(附源码)
Dec 22 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
Apr 16 Javascript
js编写简单的聊天室功能
Aug 17 Javascript
vue cli构建的项目中请求代理与项目打包问题
Feb 26 Javascript
深入理解Angularjs 脏值检测
Oct 12 Javascript
vue单应用在ios系统中实现微信分享功能操作
Sep 07 Javascript
基于Vue的商品主图放大镜方案详解
Sep 19 #Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
Sep 19 #Javascript
微信小程序错误this.setData报错及解决过程
Sep 18 #Javascript
解决layui富文本编辑器图片上传无法回显的问题
Sep 18 #Javascript
layui 富文本赋值,取值,取纯文本值的实例
Sep 18 #Javascript
layui 富文本编辑器和textarea值的相互传递方法
Sep 18 #Javascript
微信小程序获取地理位置及经纬度授权代码实例
Sep 18 #Javascript
You might like
PHP根据传来的16进制颜色代码自动改变背景颜色
2014/06/13 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
thinkphp框架page类与bootstrap分页(美化)
2017/06/25 PHP
PHP PDOStatement::closeCursor讲解
2019/01/30 PHP
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
纯文字版返回顶端的js代码
2013/08/01 Javascript
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
js中array的sort()方法使用介绍
2014/02/20 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
2015/12/12 Javascript
JS组件系列之Bootstrap table表格组件神器【终结篇】
2016/05/10 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
2016/06/15 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
Python实现excel转sqlite的方法
2017/07/17 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
python按照多个条件排序的方法
2019/02/08 Python
python实现函数极小值
2019/07/10 Python
Python实现扫码工具的示例代码
2020/10/09 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
《晏子使楚》教学反思
2014/02/08 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
教代会开幕词
2015/01/28 职场文书
校长师德表现自我评价
2015/03/05 职场文书
优秀英文求职信范文
2015/03/19 职场文书
使用pytorch实现线性回归
2021/04/11 Python
教你nginx跳转配置的四种方式
2022/07/07 Servers