js中的对象

js中的对象

在编程语言中,提到对象,一般都含有一个隐藏的上下文面向对象编程

面向对象编程(Object Oriented Programming,缩写为 OOP)是目前主流的编程范式。它将真实世界各种复杂的关系,抽象为一个个对象,然后由对象之间的分工与合作,完成对真实世界的模拟。

对象可以复用,通过继承机制还可以定制。因此,面向对象编程具有灵活、代码可复用、高度模块化等特点,容易维护和开发,比起由一系列函数或指令组成的传统的过程式编程(procedural programming),更适合多人合作的大型软件项目。

那么,“对象”(object)到底是什么?我们从两个层次来理解。

(1)对象是单个实物的抽象。

一本书、一辆汽车、一个人都可以是对象,一个数据库、一张网页、一个与远程服务器的连接也可以是对象。当实物被抽象成对象,实物之间的关系就变成了对象之间的关系,从而就可以模拟现实情况,针对对象进行编程。

(2)对象是一个容器,封装了属性(property)和方法(method)。

属性是对象的状态,方法是对象的行为(完成某种任务)。比如,我们可以把动物抽象为animal对象,使用“属性”记录具体是那一种动物,使用“方法”表示动物的某种行为(奔跑、捕猎、休息等等)。

1. 对象是属性的无序集合

来看一个典型的字面量对象的构成。

var obj = {
    "abc" : 1,
    3: false,
    "1+1": "is equal to 2 ?",
    cedf:function(){console.info("cdef")},
    "arr":[1,2,3],
    o:{"name":"jake"}
}

“在js中,对象是属性的无序集合,每个属性存放一个原始值,对象或函数”

1.1 属性

属性名:属性值

属性名是字符串。属性值可以是任意数据类型。

1.2 集合

集合是说 对象中可以有很多个属性。属性之间用逗号分隔。

1.3 无序

属性与属性之间,没有先后顺序之分。 对比一下,数组的元素之间有序的。

2. js中对象的分类

众观整个js中的对象,可以分成三类:

  • 内置对象
  • 宿主对象
  • 自定义的对象

2.1 内置对象

“由ECMA实现、不依赖于宿主环境的对象,这些对象在js程序执行之前就已经存在了”。

再细分一点,分成两类:

(1)本地对象

例如:Object,Function,Array,String,Boolean,Number,Date,RegExp,Error。

(2)单体内置对象

Global对象和 Math对象。与本地对象的区别就是:使用起来不用加new 。

2.2 宿主对象

"宿",“住宿,借宿”。

我们知道javascript是一种脚本语言,这就意味着它无法独立运行,并且要在某种环境下,才能运行。

js有两个运行的环境:

(1) 浏览器。我们在.html文件中加入js代码,再通过浏览器来打开,这里浏览器就是javascript的运行环境。

在浏览器端的js而言,宿主对象就是浏览器对象。例如:

  • window
  • document
  • history

(2) 服务器。nodejs也提供了运行js代码的环境。在node中有一个global对象

2.3 自定义对象

这才是我们展示身手的地方。例如: $, Vue 等等。

3. 用console.dir 近距离观察对象

我们有个小工具来解剖对象。

console.dir()

3.1 数组对象

3.2 函数对象

3.3 包装对象

3.4 console对象

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

用户4940950的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券