程序员兼职神器 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原型与原型链相关推荐

  1. (转)【javascript基础】原型与原型链

    原文地址:http://www.cnblogs.com/allenxing/p/3527654.html 前言 原型是什么 理解原型对象 原型对象 isPrototypeOf hasOwnProper ...

  2. javascript之原型与原型链

    前言   了解JavaScript的原型与原型链有助于我们更深层次的理解这门语言,看过很多相关的文章,写的都很好,下面是根据自己的理解,一步步揭开原型与原型链 正文 一.数据类型   在JavaScr ...

  3. JavaScript原型与原型链(总结篇)

    系列文章推荐 JavaScript原型与原型链(基础篇) JavaScript原型与原型链(进阶篇) JavaScript原型与原型链(总结篇) 1 构造函数和实例对象 构造函数的prototype属 ...

  4. JavaScript对象、原型、原型链知识总结思维导图

    这个思维导图是我对Object,原型,原型链等知识的总结,主要参考高程一书第六章,写完才发现这么多,以后可能会进行精简.内容可能会出现差错,欢迎批评指正.下载==>Github ECMAScri ...

  5. JavaScript对象——原型与原型链

    原型与原型链 一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object .Function 是 JS 自带的函数对象.下面举例说明 va ...

  6. javascript——原型与原型链

    一.prototype 在JavaScript中,每个函数都有一个prototype属性,这个属性指向函数的原型对象. 例如: function Person(age) {this.age = age ...

  7. 深入理解JavaScript系列(5):强大的原型和原型链

    前言 JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型. 虽然这经常被当作是 JavaScript 的缺点被提及,其实基于原型的继承模型比传统的类继承还要强大.实 ...

  8. 对Javascript 类、原型链、继承的理解

    一.序言   和其他面向对象的语言(如Java)不同,Javascript语言对类的实现和继承的实现没有标准的定义,而是将这些交给了程序员,让程序员更加灵活地(当然刚开始也更加头疼)去定义类,实现继承 ...

  9. JavaScript高级day02-AM【函数的prototype、显式原型与隐式原型、原型链】

    笔记.视频.源码:JavaScript(基础.高级)笔记汇总表[尚硅谷JavaScript全套教程完整版] 目   录 P15 15.尚硅谷_JS高级_函数的prototype 15:04 1. 函数 ...

  10. java原型链_深入总结Javascript原型及原型链

    本篇文章给大家详细分析了javascript原型及原型链的相关知识点以及用法分享,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. 我们创建的每个函数都有一个 prot ...

最新文章

  1. 【神经网络】(8) 卷积神经网络(Mobilenet_v1),案例:cifar图像10分类
  2. linux vim 基本操作
  3. 暴雨之后,评估与重建可以用这个数据集
  4. [Android学习笔记]查看源代码
  5. Java基础day23
  6. 排序算法之low B三人组
  7. shell复习笔记----命令与参数
  8. springboot工程的热部署
  9. svchost.exe占用CPU 100%,也可能是这样的原因
  10. 再说深度学习是黑匣子,就把这篇文章糊 Ta 脸上
  11. php2个数字拼接,PHP合并2个数字键数组值示例详解
  12. 入职必备两小时入门SVN(二)
  13. Java定义字符串(2种方式)
  14. VC++6.0 按F1无法打开 MSDN 的解决办法
  15. 安装Python模块:pygame
  16. python数据类型:序列(字符串,元组,列表,字典)
  17. I Think I Can!
  18. grafana 部署
  19. 表白代码大全,快来向你的ta表白吧~~~
  20. 鸿蒙界境界划分,修为境界划分

热门文章

  1. [jQuery基础] jQuery案例 -- qq音乐以及初步解决Ajax 跨域问题
  2. 减少HTTP请求的方法
  3. OpenCV3学习(12.3) kalman滤波器
  4. 7-5 图形继承与多态 (50 分)
  5. 均值滤波器类型_详解图像滤波原理及实现!
  6. 2013递归求解单链表中的结点个数(C++,附递归函数思路讲解与手绘图)
  7. shell 清楚空格_Cygwin系列(五):Shell命令行初体验
  8. html5单击修改背景色,用获取节点的方式实现点击按钮改变标签背景颜色的问题...
  9. 得到python对象的真实大小
  10. STM8S——8位基本定时器(TIM4)