1

这是 javascript 面向对象版块的第一篇文章,主要讲解对面向对象思想的一个理解。
先说说什么是对象,其实这个还真的不好说。我们可以把自己当成一个对象,或者过年的时候相亲,找对象,那么你未来的老婆也是一个对象。我们就要一些属性,比如我们的名字,年龄。我们还有一些可以做的事情,比如看电影,玩手机等等,其实这就是对象,然后描述的年龄以及看电影这些就是对象的属性。

我们说javascript是一种面向对象的语言,那什么又是面向对象呢?

其实我们在理解这些概念的时候有时候真的要刨根究底地去看看,真正的理解他们所要表达的意思,这样才会将知识点记得很清楚。

面向对象

举个例子:
五一节快到了,你们全家都想去国外玩一下,首先你们需要确定去哪儿,然后再决定怎么去(跟团,或者自由行),然后需要带一些什么零食在路上(水,薯片,牙土豆等等),然后你们在当天去机场怎么去(滴滴出行或者坐地铁),然后你们就可以飞到国外。突然,你爸说,搞这些东西好复杂呀,不如我们叫一个秘书来整理这一切吧(前提是要有一个秘书哈),然后我们就直接负责到国外就行,接着你们都不用管关于旅行的事了然后愉快的开始玩吃鸡。
其实这就是一个面向对象。你不需要知道怎么去国外,整个过程你不用管,你所要关心的就是安全到达国外就可以,而这个过程就交给了你爸爸的秘书这个对象来完成了。所以我们面向的就是对象(你爸爸的秘书),这就是面向对象的思想。
用代码可以这样描述:

function TravelAbroad() {
  this.travelMode = 'Free-Exercise';
  this.food = ['water', 'Potato chips', 'Tooth potatoes'];
  this.transportationWay = 'didi';
  this.goAirport = function () {
    console.log('we go to ariport by' + this.transportationWay);
  }
  this.goAbroad = function () {
    // some code before arrive abroad
    this.goAirport();
    console.log('安全到达国外');
  }
}

let personFather = new TravelAbroad();
personFather.goAbroad();

面向过程

既然说了面向对象,那么与之对应的就是面向过程。其实面向过程相比面向对象来说就很好理解了,比如上诉例子中,你爸爸的秘书做的事情就是面向过程,然后用代码解释就是,在函数执行过程中,要实现一个一个的功能就是执行一个一个的函数模块。最熟悉的C语言就是一种面向过程的语言。

面向过程是一件事“该怎么做“,面向对象是一件事“该让谁来做”,然后那个“谁”就是对象,他要怎么做是他自己的事,反正最后一群对象合力能把事做好就行了。

javascript 的面向对象

面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。但是在ECMAScript 中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同。
ECMA-262 把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”严格来讲,这就相当于说对象是一组没有特定顺序的值。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。正因为这样,我们可以把 ECMAScript 的对象想象成散列表:无非就是一组名值对,其中值可以是数据或函数。

小结

在这篇文章中,介绍了什么是面向对象和面向过程,以及javascript中对象的含义。在下篇文章中将要介绍一些对象属性方面的知识。如果文章有错误还望各位大佬提出,一起节流学习。

下一篇: javascript 面向对象版块之对象属性
上一篇: javascript 面向对象的程序设计


KuangPF
157 声望9 粉丝