最近在学习js,之前的学习一直是断断续续,非常不全面。。。写这篇博文来记录我的学习过程和小心得吧。
js中很重要的一个方面便是原型和原型链
首先提出我的小疑问,原型是什么,原型链又是什么?为什么要有他们?他们用在何处?
JavaScript是面向对象的语言,那么要实现面向对象,就要实现--面向对象的三大特性(封装、继承、多态)。JavaScript实现oop三大特性用的就是原型。
原型从定义上说:
“我们创建的每个函数都有一个prototype(原型)属性(除了Function.bind()返回的函数),这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。”
–摘自人民邮电出版社出版的Nicholas C.Zakas著的《JavaScript高级程序设计》(第2版)
因此,prototype(显式原型)属性指向的对象就是原型对象。(当然还包括隐式原型_proto_)
而原型链是将使用对象的_proto_属性,形成逐级引用的关系。
JavaScript中的对象又是什么呢?有哪些类别?
之前看到很多关于讲js对象及其原型的讲解文章,这一篇我觉得解释的非常清楚,传送门《深度理解JS对象及原型》。
由于本人的水平有限,欢迎大家指正评论,我会及时的修改回复的。