JS_13原型与原型链
原型与原型链
原型
- 每一个函数都有一个属性:prototype,默认指向object空对象,就是原型对象,原型对象有一个constructor属性,指向函数对象
- 每一个实例化对象都有一个属性 proto ,默认指向构造函数的原型对象(是构造函数原型对象的一个引用)
var Fun = function(){// console.log("构造函数")}console.log(Fun.prototype.constructor === Fun) // truevar fu = new Fun()console.log(fu.__proto__ === Fun.prototype) //trueFun.prototype.newfun = function(){console.log("新方法")}fu.newfun()
[外链图片转存失败(img-dSAsDvPJ-1562680215660)(image/proto.png)]
原型链
- 所有函数都是Function的实例,包括Function()自己和Object(),也就是所有函数都有一个__proto__属性,指向Function的显式原型(Function.prototype)
- Object是所有对象的构造函数,寻找对象的属性或方法时,最终会找到Object,Object的隐式原型是Null,如果在Object中还没找到对应的属性或方法,就会为underfind
console.log(Function.prototype)
console.log(Fun instanceof Function) //true
console.log(Object instanceof Function) //true
console.log(Function instanceof Object) // true
console.log(Function instanceof Function) //trueconsole.log(Object.prototype === Fun.prototype.__proto__) // true
console.log(Object.prototype.__proto__) // nullconsole.log(Function.prototype === Object.__proto__) // true
console.log(Function.__proto__ === Function.prototype) // true
console.log(Function.prototype.__proto__ === Object.prototype) // true
[外链图片转存失败(img-8rF7HpZg-1562680215677)(image/proto2.jpg)]
总结
- 原型与原型链
- 原型
- 显式原型与隐式原型
- 每一个构造函数都会有一个prototype属性,指向一个Object空对象,就是显式原型
- 每一个实例化对象都有一个__proto__属性,指向其构造函数的显式原型的值
- 显式原型与隐式原型
- 原型链:查找对象的属性和方法
- 所有函数都是Function的实例,包括Function自己和Object()
Function.__proto__ === Function.prototype
- 所有对象都是由Object实例化而来,
- 所有对象在寻找某个属性或方法时,最终会找到Object中
- Object.proto = null
- Object instanceof Function 为true,而反过来Function instanceof Object 也为true,他们互相是对方的构造函数
- 所有函数都是Function的实例,包括Function自己和Object()
- 原型
JS_13原型与原型链相关推荐
- 浅谈JS原型与原型链(一)
最近学习JavaScript原型与原型链的时候,被这块知识烧得脑壳疼,prototype与__proto__混淆不清.网上各种图解,都画的好复杂,绕老绕去,不明所以,看得越来越糊涂.还是亲自动手敲敲, ...
- JS原型与原型链终极详解
一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object ,Function 是JS自带的函数对象.下面举例说明 functi ...
- js原型和原型链_重学js --原型与原型链
一.什么是原型: .每个对象都有一个__proto__属性,并且指向它的prototype原型对象 每个构造函数都有一个prototype原型对象 prototype原型对象里的constructor ...
- (转)【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 ...
- 在图书馆学习红宝书的一天(二)· 慢慢看原型、原型链就看懂了~
前言 大家好,这里是@IT·平头哥联盟,我是团宠闪光少女--粉刷酱. 要怎么描述编程是个多幸福的工作呢? 我们很多人都想着如果能一辈子编程,那真是太好了. 而现实生活中,对未来的担忧和焦虑常常困扰着我 ...
最新文章
- OSI 七层参考模型
- 【正一专栏】巴萨四大皆空怎么办
- Ansj中文分词Java开发小记
- list根据对象进行排序
- kotlin将对象转换为map_Kotlin程序将哈希映射(HashMap)转换为列表(List)
- linux下php的安装,Linux下PHP安装
- poj 2378 (dijkstra)
- 物联网形势大好,传感器前景可观
- MFC 程序大小及控件自适应不同的屏幕分辨率
- 2019南昌网络赛H The Nth Item(二阶线性数列递推 + 广义斐波那契循环节 + 分段打表)题解...
- 网络授时设备(NTP时钟服务器)助力智能交通管控平台
- 高德地图根据经纬度获取位置
- 什么是java全栈工程师
- vmware win7 iso 镜像文件下载
- 从word中无损批量导出图片
- cc150 java_javaMail 的邮件发送包括了抄送(CC),密送(BCC)采用springBoot
- fa-cog css,完整的Font Awesome 3.2.1 图标参考
- ‘npm‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
- MyEclipse解决SVN同步冲突问题conflict in the working copy obstructs the current operation
- GRP-U8如何修改账套主管
热门文章
- 解决: Linux – git: command not found
- 注解@Cacheable(value =“XXX“) 实现缓存 -- 失效原因
- 【转】Snackbar和Toast的花式使用,这一篇就够了
- 4、容器虚拟化网络概述
- git push 提交时显示 Empty reply from server的解决办法
- 下一步工作的一些思考和问题
- 关于resolve非泛型方法不能与类型实参一起使用
- Android 通信 EventBus
- Spring笔记③--spring的命名空间
- SharePoint里如何设置People picker值为当前登录用户值