潍坊做网站的,深圳专业网站建设,wordpress相关的网站,网页加速器哪个好JavaScript作为一个基于原型的OOP#xff0c;和我们熟知的基于类的面向对象编程语言有很大的差异。如果不理解其中的本质含义#xff0c;则无法深入理解JavaScript的诸多特性#xff0c;以及由此产生的诸多“坑”。在讨论“原型”的概念之前#xff0c;我们先来讨论一下“类…JavaScript作为一个基于原型的OOP和我们熟知的基于类的面向对象编程语言有很大的差异。如果不理解其中的本质含义则无法深入理解JavaScript的诸多特性以及由此产生的诸多“坑”。在讨论“原型”的概念之前我们先来讨论一下“类”也就是Java、C等语言所使用的概念。 在基于类的编程语言中都要先抽象出一个“类”用来统一表示同一种对象。然后用这个抽象类创建出一个个实例泛化也就是对象object。最后类和类之间通过组合、继承等特性共建出一个可以互动的系统从而用这套人为创建的系统来模拟、操纵现实中的物理世界。它的三大特性为封装继承多态然而在原型概念中有很多不同之处。基于原型的编程范式提倡程序设计者关注实例对象的一系列行为然后根据行为的不同划分出不同的原型而不是事先抽象出一个类再关注具体的对象。它最大的特点是可以动态修改对象的行为具有高度灵活性。如果把基于类的对象称为“自上而下”式的顶层设计那么基于原型的对象则可以被称为“自下而上”式的动态演化。基于原型的面向对象系统通过“复制”的方式来创建新对象这实际上就是创建一个全新的对象。 原型系统的“复制”操作有两种实现思路 并不是真正的复制一个对象而是使新对象持有一个原型的引用切实的复制一个对象复制对象和被复制对象再无任何关联。 JavaScript选择了前一种复制方式。
参考链接 1. https://ost.51cto.com/posts/1272 # JavaScript 中的原型到底该如何理解2. https://zhuanlan.zhihu.com/p/99103505 # JavaScript中的类、原型、原型链、继承