前言
在前端开发过程中,涉及到JS原理相关的内容也就是常用的几大模块,不仅常用而且很重要,但是涉及到原理的话会有点难懂,尤其是对JS接触不太久的开发者来讲,甚至工作好几年的开发者也只是在平时开发中知道怎么使用,要想让他讲原理也是讲的不完全,所以这就需要我们在开发的时候把原理运用到实际工作中,这样可以起到事半功倍的效果,不仅完成了工作任务也彻底搞清楚了使用原理,岂不美哉?!那么本篇博文就来分享一下关于JS的原型和原型链相关的知识点,虽然复杂、难懂但是很重要,值得收藏,方便后期查阅使用,虽然笔者也是在工作好久之后才彻底搞懂原理,但是不算晚,毕竟学知识什么时候都不晚。
一、prototype
背景
JS 中,除了基本数据类型(也叫简单数据类型)之外的类型,都是引用数据类型(也叫复杂数据类型),即对象;也就是说,在JS的宇宙中,一切皆是对象。在ES6之前,由于JS中没有类的概念(在ES6的时候引入了class,但其也只是语法糖),在实际开发中想要将所有的对象关联起来就成了问题,于是原型和原型链的概念应运而生。
原型字面释义(来源于网络)
原型(prototype)这个词来自拉丁文的词proto,意谓“最初的”,意义是形式或模型。在非技术类的文中,一个原型是给定种类的一个代表性例子。
在以原型为基础的程序方面,一个原型是一个最初的对象(object);新的物体藉由复制