原型对象前端
原型对象简单来讲就是函数的原型所指向的对象。前面说原型的时候,说了Object.prototype所指对象就是Object(函数)的原型对象。在每一个函数的原型对象中,默认会有constructor属性,用于指向函数自己。程序员
在最开始的时候,原型对象的constructor设计主要是为了获取对象的构造函数。后来发现constructor属性易变,不可信。推荐使用instanceof。web
原型对象有什么做用,主要实现对象的继承。面试
例如咱们经常使用的对象、数组、函数都是得益于原型。数组
当咱们使用变量直接量定义一个对象的时候,其实咱们是没有定义它上面的这些可以调用的方法函数
let obj = {};学习
这些方法怎么来的,就是经过调用Object上面的原型对象而来的。spa
console.log(Object.prototype)
prototype
同理数组(经过调用Array.prototype),函数(经过调用Function.prototype)设计
原型链
ECMAScript中描述了原型链的概念,并将原型链做为实现继承的主要方法。其基本思想是利用原型让一个引用类型继承另外一个引用类型的属性和方法。简单回顾一下构造函数、原型和实例的关系:每一个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。那么,假如咱们让原型对象等于另外一个类型的实例,结果会怎么样呢?显然,此时的 原型对象将包含一个指向另外一个原型的指针,相应地,另外一个原型中也包含着一个指向另外一个构造函数的指针。假如另外一个原型又是另外一个类型的实例,那么上述关系依然成立,如此层层递进,就构成了实例与原型的链条。这就是所谓原型链的基本概念。
更多网页前端开发教程,行业资讯,面试技巧,欢迎关注公众号:网页前端开发学习
记得点个赞
若是有对web前端感兴趣前端程序员,,可加入咱们的web前端技术学习群的640633433,里面免费送前端的零基础教程噢!
写在最后:
不少人都知道我是学全栈的,都天真的觉得我有全套的前端、网页制做等视频学习资料。我想说大家是对的,个人确有前端的全套视频资料。