你不是真正的class

719 阅读2分钟

前言

某一天,Hax大佬开始分享PPT,翻到某一页开始讲Public field。我一脸蒙这是什么,根据字面意思是作用域。首先那我得搞懂class中的一些关键词。为了便于知识的串联,总结成这篇关于class作用域的文章。

初学之路

一个简单的class举例

上面这段JS代码,建立一个class。实质它还是建立一个对象,我们来查看它的类型。

面向对象编程

JavaScript是一门面向对象的语言,面向对象简称OOP。大多是面向对象的语言都支持类和类的继承,但是JavaScript不是。所以class不是真正意义上的class。JavaScript语言从本质上讲是一门基于原型的语言,万物皆Object对象。JavaScript只有对象,即原型对象。任何对象都可以作为另一个对象的原型,后者共享原型的属性。

面向对象的三大基本特征

  1. 封装性:简单的说,像一个黑盒子。我们只能看到黑盒子的外部,调用它提供的接口,起到可以很好的重用。

  2. 继承性:父类继承给子类,子类继承父类的一些非私有的方法。

  3. 多态性:方法名相同,实现不同。

JS中的class是干什么的

JavaScript中的class是ECMAScript6提出的,用于定义对象的基本特征,对象的属性和方法的模板定义。class只是一个语法糖,并没有影响到JavaScript基于原型的事实。

总结

盗张月影大佬在GMTC上PPT的图,这张图很有意思。人一天的集中精力的时间也就是那么几个小时,其他时间做一些流程化的事情或者去干一些其他有意义的事情。

但是技术的积累和沉淀,需要耐住寂寞花时间去串联总结学习,并且实践。所以也是督促自己半个月在掘金写一篇文章,这样会慢慢进步。总之,提高效率做事情事半功倍。