JavaScript(四)——对象
前言
在JavaScript(一)——变量、运算符中已经做过简单的说明。这些数据类型与其他语言的操作方式没有太大的区别,大家可以自己去W3C查找API来学习,在此不做赘述。
对象
首先展示一下对象在JavaScript中的写法:
// 对象必须用 {花括号} 包围起来
let obj_test = {
name: 'Reman',
age: 24,
gender: 'man'
}
JavaScript语言的编程形式
所有的编程语言大体上可以分为两大类:
- 面向过程;
- 面向对象。
在Java系列的笔记中我对面向对象和面向过程有过描述。这二者被称为编程形式,何为编程形式?
编程形式就是该语言的执行逻辑,说到底就是一种编程思想。所以说不能单纯的说明哪门语言是面向哪一个方面的(当然,从底层来分析,JAVA语言是由一个一个类和对象来组成的,但是JVM底层还是由C语言来执行的呢……)。
比如Java语言也可以进行面向过程思想的编程;C语言也可以进行面向对象的思想来编程。说到底,面向什么只是一种思想,不要被语言给束缚住。
话说回来,Java语言正式因为在那个年代发现了当时编程的局限性从而决定从底层开始研究一款更适合面向对象思想的编程语言。所以说面向什么又和这门语言当初诞生的初衷以及它更适合哪种编程形式。
JavaScript从最早的时候是一种面向过程的编程语言,但是随着技术更新迭代,发现单纯的面向过程没办法跟上时代的进步。所以它又开始了面向对象的方向转变;知道近几年来,技术的更新迭代暴露了面向对象的局限性,所以JavaScript又开始从主要面向对象的方向发展成为了即面向过程又面向对象的语言。
最后,还是想给大家稍稍总结一下面向过程和面向对象之间的关系:
面向过程可以理解为:我们在做某一件事的时候需要有什么准备工作,需要用到什么手段。所以面向过程可以理解为一种行为(就好像我们需要炒菜一样需要准备食材、调料等),面向过程的编程思维是一种注重过程的编程思维,比如我们炒菜需要的食材数量、烹饪时间,这是一种注重细节的思维。
而面向对象则是**“忽略细节”**,所谓的忽略细节不是说完全不管细节,而是将炒菜这种行为的执行过程抽象出来。具体如下:
- 炒菜需要以下准备工作:
- 食材:
- 素菜;
- 荤菜。
- 调料:
- 葱、姜、蒜等等。
- 油:
- 菜油;
- 荤油。
- 食材:
…………
先举以上这几个例子。做菜大体需要以上的准备工作,我们如果把需要的食材、调料等先定义好,根据每种食材需要的烹饪时间、烹饪方式都以参数的形式传递给程序,这样程序就可以把菜制作好,不需要我们实际操作(具体参考人工智能——烹饪机器人)。
说到这里大家可能很迷糊,对面向对象仅有一个模糊的认知,那么我再让大家迷糊一点:
对象是一种具体的存在,而这种存在不是你可以看见或触碰到的。就像黑洞一样,在很久以前,科学家仅仅是提出了黑洞存在的假设,同时根据天文学、物理学给了这个假设黑洞的一些特性,然后按照这些特性想象一个黑洞。这就是从假设的抽象画到实例化的过程。
万物从无到有,总得先有假设认为存在,才能向着假设的方向努力研究和发现,科技就是这么发展起来的。
如果大家真的被我说迷糊了,请移步到这篇笔记中醒醒脑子,嘿嘿:
总结
本篇笔记仅记录了一些逻辑方面的概念,没有实际的技术说明,不过你可以拿这些和不懂技术的HR侃侃,估计会把他说蒙;遇到工程师给大家面试,也可以表述出来这个观点,最起码可以证明你再编程方面还是挺有想法的……