前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js中的对象

js中的对象

原创
作者头像
用户4940950
修改2019-03-26 17:19:57
6.9K0
修改2019-03-26 17:19:57
举报
文章被收录于专栏:用户4940950的专栏

js中的对象

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

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

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

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

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

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

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

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

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

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

代码语言:txt
复制
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 属性
代码语言:txt
复制
属性名:属性值

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

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对象

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • js中的对象
    • 1. 对象是属性的无序集合
      • 1.1 属性
      • 1.2 集合
      • 1.3 无序
    • 2. js中对象的分类
      • 2.1 内置对象
      • 2.2 宿主对象
      • 2.3 自定义对象
    • 3. 用console.dir 近距离观察对象
      • 3.1 数组对象
      • 3.2 函数对象
      • 3.3 包装对象
      • 3.4 console对象
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档