深入理解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 相关文章推荐
用js怎么把&字符换成"&amp:"
Oct 19 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
Feb 23 Javascript
javascript中的float运算精度实例分析
Aug 21 Javascript
jQuery.extend 函数详解
Feb 03 Javascript
快速解决FusionCharts联动的中文乱码问题
Dec 04 Javascript
iframe里面的元素触发父窗口元素事件的jquery代码
Oct 19 Javascript
JavaScript阻止回车提交表单的方法
Dec 30 Javascript
原JS实现banner图的常用功能
Jun 12 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
Jun 14 Javascript
vue中使用gojs/jointjs的示例代码
Aug 24 Javascript
微信小程序吸底区域适配iPhoneX的实现
Apr 09 Javascript
vue中可编辑树状表格的实现代码
Oct 31 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
PHP4实际应用经验篇(9)
2006/10/09 PHP
php基础知识:类与对象(1)
2006/12/13 PHP
php二分法在IP地址查询中的应用
2008/08/12 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
JS基于Ajax实现的网页Loading效果代码
2015/10/27 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
jQuery选择器_动力节点Java学院整理
2017/07/05 jQuery
JS实现简单短信验证码界面
2017/08/07 Javascript
基于ajax和jsonp的原生封装(实例)
2017/10/16 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
在Express中提供静态文件的实现方法
2019/10/17 Javascript
详解vue实现坐标拾取器功能示例
2020/11/18 Vue.js
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
pytorch使用 to 进行类型转换方式
2020/01/08 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
百丽国际旗下购物网站:优购
2017/02/28 全球购物
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
DC Shoes澳大利亚官方网上商店:购买DC鞋子
2019/10/25 全球购物
GWebs公司笔试题
2012/05/04 面试题
中间件分为哪几类
2016/09/18 面试题
学生档案自我鉴定
2013/10/07 职场文书
质检的岗位职责
2013/11/17 职场文书
2014国庆节商场促销活动策划方案
2014/09/16 职场文书
党员个人对照检查材料思想汇报
2014/09/16 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
大学学生会辞职信
2015/05/13 职场文书
辞职信格式范文
2015/05/13 职场文书
入党团支部推荐意见
2015/06/02 职场文书
Python图片处理之图片裁剪教程
2021/05/27 Python
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript