深入理解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 发个判断字符串是否为符合标准的函数
Apr 27 Javascript
Jquery 插件开发笔记整理
Jan 17 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
Nov 23 Javascript
jquery制作图片时钟特效
Mar 30 Javascript
JS中取二维数组中最大值的方法汇总
Apr 17 Javascript
深入理解JavaScript单体内置对象
Jun 06 Javascript
微信小程序 form组件详解及简单实例
Jan 10 Javascript
seajs中最常用的7个功能、配置示例
Oct 10 Javascript
基于vue cli 通过命令行传参实现多环境配置
Jul 12 Javascript
深入理解Vue.js轻量高效的前端组件化方案
Dec 10 Javascript
微信小程序实现上拉加载功能
Nov 20 Javascript
原生js实现文件上传、下载、封装等实例方法
Jan 05 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判断正常访问和外部访问的示例
2014/02/10 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
10条php编程小技巧
2015/07/07 PHP
关于php几种字符串连接的效率比较(详解)
2017/02/22 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
详解JavaScript的策略模式编程
2015/06/24 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
微信小程序 共用变量值的实现
2017/07/12 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
浅谈Python处理PDF的方法
2017/11/10 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
Django关于admin的使用技巧和知识点
2020/02/10 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
如何理解python面向对象编程
2020/06/01 Python
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
大学生求职工作的自我评价
2014/02/13 职场文书
洗车工岗位职责
2014/03/15 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
2014年实验室工作总结
2014/12/03 职场文书
离婚协议书范文
2015/01/26 职场文书
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android