JS中基于对象语言的特性

论坛 期权论坛 脚本     
匿名技术用户   2020-12-23 03:31   35   0

主流的编程语言中,以C语言为代表的面向过程类型语言,和以C++(Java)等为代表的面向对象类型语言形成两种编程范式。当然,在web前端开发过程中主要用到的JavaScript语言并不是严格意义的面向对象语言,和传统的强类型的面向对象语言有一定的差异。

面向对象语言具有三大特征:

1.继承性:通俗的说,一个对象不具有另一个对象的属性和方法,可以通过原型继承等方式获得另一个对象的属性和方法。这一点JS具有良好的继承性。

2.封装性:将常见的属性和对象封装到一个函数中,进一步封装到一个对象中。这个特性在JS中也可以得到良好的实现。同时需要注意的一点:在Java中可以通过类class直接定义一个对象,之后进行对象的实例化。在JS中ECMA3版本中没有明确类(class)的定义,class作为保留字可能在后续的开发中进行使用。所以JS中的对象通常使用构造函数进行创建。这也是JS特殊的地方之一。封装性可以减少变量污染全局环境,同时提高代码的复用率。

3.多态性:在Java中,子类可以访问父类的属性和方法,父类不能访问到子类的属性和方法,叫做面向对象的多态性。然而,在JavaScript中不具有这个特征。所以说JS和严格意义的面向对象编程语言还存在差距。

面向对象和面向过程实际上各有优缺点。之前接触了一点点C语言的皮毛,感觉以C语言为代表的面向过程语言博大精深,非一日之功不能掌握其精髓。当然,面向对象语言java在另一些领域可以得到更广泛的应用。根据最新的2018年编程语言排行榜,这两个主流语言的市场占有率仍然很高(行业有所不同,C语言等偏重底层开发,Java等偏重于应用)。Javascript使用也在前十,稳中有进。当然,Python和Go等语言的市场份额在不断扩大。相信将来编程语言会进一步完善!期待中!

2019-3-3 更新

现在ES6的普及已经使得JS的面向对象属性增加,使用 class 类创建对象已经取代了构造函数创建对象的方式。其他ES6中的新特性,例如解构赋值、箭头函数等等新内容已经很常用。目前ES8已经问世,相信一段时间后将会取代早期的规范和方法。现在需要巩固基础,了解新特性。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP