深入理解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 相关文章推荐
jQuery仿Excel表格编辑功能的实现代码
May 01 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
Nov 18 Javascript
js+html5实现canvas绘制简单矩形的方法
Jun 05 Javascript
使用Node.js配合Nginx实现高负载网络
Jun 28 Javascript
基于JavaScript实现文字超出部分隐藏
Feb 29 Javascript
跨域请求的完美解决方法(JSONP, CORS)
Jun 12 Javascript
JS从数组中随机取出几个数组元素的方法
Aug 02 Javascript
vue绑定的点击事件阻止冒泡的实例
Feb 08 Javascript
el-select 下拉框多选实现全选的实现
Aug 02 Javascript
JavaScript实现留言板案例
Mar 17 Javascript
uni-app使用countdown插件实现倒计时
Nov 01 Javascript
springboot+vue实现文件上传下载
Nov 17 Vue.js
基于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与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
php md5下16位和32位的实现代码
2008/04/09 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
jqPlot Option配置对象详解
2009/07/25 Javascript
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
基于jquery封装的一个js分页
2011/11/15 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
Javascript获取CSS伪元素属性的实现代码
2014/09/28 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
js+HTML5实现视频截图的方法
2015/06/16 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
JS实现公告上线滚动效果
2021/01/10 Javascript
Python for Informatics 第11章 正则表达式(一)
2016/04/21 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
2016/06/07 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
一套Java笔试题
2016/08/20 面试题
销售人员自我评价
2014/02/01 职场文书
法制宣传日活动总结
2014/04/29 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
护士求职简历自我评价
2015/03/10 职场文书
雷锋的故事观后感
2015/06/10 职场文书
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL