JavaScript原型与原型链
程序员兼职神器 VIP影视网站一键建站,卖VIP会员赚房租hadoopdoc.com
原型
1、每个函数都有一个prototype属性,它默认指向一个Object空对象(即称为: 原型对象),原型对象中有一个constructor,它指向函数对象
2、给原型对象添加属性(一般都是方法),作用:函数的所有实例对象自动拥有原型中的属性(方法)
<script type="text/javascript">// 每个函数都有一个prototype属性, 它默认指向一个对象(即称为: 原型对象)console.log(Date.prototype, typeof Date.prototype) //输出结果:Object "object"function fn() {}console.log(fn.prototype, typeof fn.prototype) //输出结果:Object "object"// 原型对象中有一个属性constructor, 它指向函数对象console.log(Date.prototype.constructor===Date) //输出结果:trueconsole.log(fn.prototype.constructor===fn) //输出结果:true// 2. 给原型对象添加属性(一般都是方法)function F() {}F.prototype.age = 12 //添加属性F.prototype.setAge = function (age) { // 添加方法this.age = age}// 创建函数的实例对象var f = new F()console.log(f.age) //输出结果:12f.setAge(23)console.log(f.age) //输出结果:23
</script>12345678910111213141516171819202122复制代码
显式原型
每个函数function都有一个prototype,即显式原型,在 定义函数时自动添加的,默认值是一个空Object对象
隐式原型
每个实例对象都有一个-proto-,可称为隐式原型,对象的隐式原型的值为其对应构造函数的显示原型的值。
总结及显式原型与隐式原型分析图
程序员能直接操作显示原型,但不能直接操作隐式原型(ES6之前)
原型链(隐式原型链)
访问一个对象属性时,先在自身属性中查找,找到返回;如果没有,再沿着proto这条链向上查找,找到返回;如果最终没有找到,返回undefined,原型链例子如下:
<script type="text/javascript">function Fn() {this.test1 = function () {console.log('test1()')}}Fn.prototype.test2 = function () {console.log('test2()')}var fn = new Fn()fn.test1() //输出结果:test1()fn.test2() //输出结果:test2()console.log(fn.toString()) //输出结果:[object Object]fn.test3() //输出结果:fn.test3 is not a function
</script>12345678910111213141516复制代码
原型链分析图:
原文链接:https://blog.csdn.net/LUOandHUANG/article/details/81134586
JavaScript原型与原型链相关推荐
- (转)【javascript基础】原型与原型链
原文地址:http://www.cnblogs.com/allenxing/p/3527654.html 前言 原型是什么 理解原型对象 原型对象 isPrototypeOf hasOwnProper ...
- javascript之原型与原型链
前言 了解JavaScript的原型与原型链有助于我们更深层次的理解这门语言,看过很多相关的文章,写的都很好,下面是根据自己的理解,一步步揭开原型与原型链 正文 一.数据类型 在JavaScr ...
- JavaScript原型与原型链(总结篇)
系列文章推荐 JavaScript原型与原型链(基础篇) JavaScript原型与原型链(进阶篇) JavaScript原型与原型链(总结篇) 1 构造函数和实例对象 构造函数的prototype属 ...
- JavaScript对象、原型、原型链知识总结思维导图
这个思维导图是我对Object,原型,原型链等知识的总结,主要参考高程一书第六章,写完才发现这么多,以后可能会进行精简.内容可能会出现差错,欢迎批评指正.下载==>Github ECMAScri ...
- JavaScript对象——原型与原型链
原型与原型链 一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object .Function 是 JS 自带的函数对象.下面举例说明 va ...
- javascript——原型与原型链
一.prototype 在JavaScript中,每个函数都有一个prototype属性,这个属性指向函数的原型对象. 例如: function Person(age) {this.age = age ...
- 深入理解JavaScript系列(5):强大的原型和原型链
前言 JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型. 虽然这经常被当作是 JavaScript 的缺点被提及,其实基于原型的继承模型比传统的类继承还要强大.实 ...
- 对Javascript 类、原型链、继承的理解
一.序言 和其他面向对象的语言(如Java)不同,Javascript语言对类的实现和继承的实现没有标准的定义,而是将这些交给了程序员,让程序员更加灵活地(当然刚开始也更加头疼)去定义类,实现继承 ...
- JavaScript高级day02-AM【函数的prototype、显式原型与隐式原型、原型链】
笔记.视频.源码:JavaScript(基础.高级)笔记汇总表[尚硅谷JavaScript全套教程完整版] 目 录 P15 15.尚硅谷_JS高级_函数的prototype 15:04 1. 函数 ...
- java原型链_深入总结Javascript原型及原型链
本篇文章给大家详细分析了javascript原型及原型链的相关知识点以及用法分享,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. 我们创建的每个函数都有一个 prot ...
最新文章
- 【神经网络】(8) 卷积神经网络(Mobilenet_v1),案例:cifar图像10分类
- linux vim 基本操作
- 暴雨之后,评估与重建可以用这个数据集
- [Android学习笔记]查看源代码
- Java基础day23
- 排序算法之low B三人组
- shell复习笔记----命令与参数
- springboot工程的热部署
- svchost.exe占用CPU 100%,也可能是这样的原因
- 再说深度学习是黑匣子,就把这篇文章糊 Ta 脸上
- php2个数字拼接,PHP合并2个数字键数组值示例详解
- 入职必备两小时入门SVN(二)
- Java定义字符串(2种方式)
- VC++6.0 按F1无法打开 MSDN 的解决办法
- 安装Python模块:pygame
- python数据类型:序列(字符串,元组,列表,字典)
- I Think I Can!
- grafana 部署
- 表白代码大全,快来向你的ta表白吧~~~
- 鸿蒙界境界划分,修为境界划分
热门文章
- [jQuery基础] jQuery案例 -- qq音乐以及初步解决Ajax 跨域问题
- 减少HTTP请求的方法
- OpenCV3学习(12.3) kalman滤波器
- 7-5 图形继承与多态 (50 分)
- 均值滤波器类型_详解图像滤波原理及实现!
- 2013递归求解单链表中的结点个数(C++,附递归函数思路讲解与手绘图)
- shell 清楚空格_Cygwin系列(五):Shell命令行初体验
- html5单击修改背景色,用获取节点的方式实现点击按钮改变标签背景颜色的问题...
- 得到python对象的真实大小
- STM8S——8位基本定时器(TIM4)