原创

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 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • GIX4中懒加载

    在使用OpenExpressApp框架的GIX4项目中,对象的懒加载按照对象的性质不同,分为以下两种方式: 根对象类:     Get方法:获取根对象,并附带上...

    用户1172223
  • Java基础-面向对象(一)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    cwl_java
  • Calculation modules

    V-REP提供了强大的计算功能或计算模块,这些功能并没有直接封装在对象中(例如,接近传感器或视觉传感器),而是在一个或多个对象上操作。

    六四零
  • php学习之类与对象基础知识,适合初学者

    在面向对象中,最重要的概念就是类和对象,比如,一个人类,每一个人都具有一定的属性和行为方法,这这些属性和方法具体到每一个人身上就是一个对象,一个大类就是有无数个...

    吾爱乐享
  • 垃圾收集算法 Krains 2020-08-06

    每个对象保存一个整型的引用计数器,假设有一个对象A,如果别的对象引用了A,就让A对象的引用计数器加1,如果引用失效了,计数器减1,当计数器为0的时候,该对象就是...

    Krains
  • (4)JVM——垃圾回收算法

    介绍:在程序运行过程中,程序计数器、虚拟机栈、本地方法栈 3 个区域随线程而生,随线程而灭,不用我们关注内存的回收。而 Java 堆和方法区不一样,此处的内存使...

    凡人飞
  • 虚拟机系列 | 执行引擎和垃圾回收

    应用程序经过编译,转换为字节码文件,字节码加载到内存空间并不能直接在操作系统上执行,执行引擎作为Java虚拟机核心的组成部分,作用就是将字节码指令解释/编译为对...

    知了一笑
  • 经典面试题-序列化的作用,应用场景

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    cwl_java
  • 深入理解 Java 虚拟机 - 你了解 GC 算法原理吗

    对于JVM的垃圾收集(GC),这是一个作为Java开发者必须了解的内容,那么,我们需要去了解哪些内容呢,其实,GC主要是解决下面的三个问题:

    好好学java
  • Thymeleaf从入门到吃灰

    然后编写一个springBoot的启动类,这里不多说了,直接启动项目访问测试即可:

    良月柒

扫码关注云+社区

领取腾讯云代金券