关键点在于是否可以在运行时动态改变对象
结合文章通篇看下来,觉得 JS 的 OO 和他基于类的 OO 不同之处,在于 JS 可以在运行时修改对象,而 class based 的类只能预先全部定义好,我们并不能在运行时动态修改类。在我理解来说,条条大路通罗马,面向对象是罗马,class based 是一条路,prototype based 是另一条路。而且 Symbol 的出现,暴露出了许多内置接口,让 JS 又在这条路上走了更远一些。(以前上学背面向对象的三个特征,封装,继承,多态,现在看一下突然觉得很对。。。
像我这种年轻一点的前端,很可能就只是相对熟悉 JS 而已,对于其他语言更多都是道听途说,计算机基础也比较薄弱,所以用来比较其实比较难。
只知道 class based 的大概有 Java,C++, C#, Python
另外,好奇 Symbol 是怎么实现的,希望老师以后能大概讲讲啦。暂时只想到这些,其他的还在消化
展开