深入理解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 相关文章推荐
jQuery1.6 使用方法二
Nov 23 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
May 02 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
May 18 Javascript
关于JavaScript中name的意义冲突示例介绍
May 29 Javascript
jQuery对象与DOM对象之间的相互转换
Mar 03 Javascript
JavaScript实现的encode64加密算法实例分析
Apr 15 Javascript
详解JavaScript的策略模式编程
Jun 24 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
Dec 04 Javascript
JQuery手速测试小游戏实现思路详解
Sep 20 Javascript
微信小程序收货地址API兼容低版本解决方法
May 18 Javascript
vue 解除鼠标的监听事件的方法
Nov 13 Javascript
微信小程序仿抖音短视频切换效果的实例代码
Jun 24 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
解决GD中文乱码问题
2007/02/14 PHP
分享PHP header函数使用教程
2013/09/05 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
使用JQuery进行跨域请求
2010/01/25 Javascript
jquery中获取select选中值的代码
2011/06/27 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
javascript arguments使用示例
2014/12/16 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
2015/08/07 Javascript
jquery实现的仿天猫侧导航tab切换效果
2015/08/24 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
2015/12/17 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
浅析vue component 组件使用
2017/03/06 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
@angular前端项目代码优化之构建Api Tree的方法
2018/12/24 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
全面分析Python的优点和缺点
2018/02/07 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
python数据爬下来保存的位置
2020/02/17 Python
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
软件设计的目标是什么
2016/12/04 面试题
思想汇报格式
2014/01/05 职场文书
廉洁校园实施方案
2014/05/25 职场文书
股指期货心得体会
2014/09/13 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
企业管理不到位检讨书
2019/06/27 职场文书