Js-对象

Js对象

  • 对象
    • 类(构造函数)
    • 广义对象:
      • 分类:
        • 本地对象(native object)
      • 内置对象(built-in object)
      • 宿主对象(host object)
        • BOM 对象
        • DOM 对象
      • 用户自定义对象(user-defined object)
    • 狭义对象:
    • 函数:
    • 数组:

对象

http://www.ferecord.com/lujs-object.html#native-object

类(构造函数)

https://www.cnblogs.com/jiejiejy/p/7666091.html

类是一个抽象的概念,只能说类有属性和方法,但是不能给属性赋具体的。比如,人类有姓名,但是不能说人类的姓名叫什么。
所谓“类”就是对象的模板,对象就是“类”的实例。

但是,JavaScript 语言的对象体系,不是基于“类”的,而是基于构造函数(constructor)和原型链(prototype)。

广义对象:

对象是一个具体的个例,是将类中的属性进行具体赋值而来的个体。

对象是一个容器,封装了属性(property)和方法(静态方法与实例方法)。
各对象方法详见;https://wangdoc.com/javascript/stdlib/object.html

  • 静态方法:
    Object.keys(),
    Object.getOwnPropertyNames()
  • 实例方法
    Object.prototype.valueOf()
    Object.prototype.toString()

除了用字面量声明的基本数据类型之外,JS中万物皆对象。换句话说,只要能添加属性和方法的变量,都可以称为对象。(Object)

对象由类(构造函数)通过类实例化(new)出一个对象。

分类:

本地对象(native object)

  • ECMA-262把本地对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象”。

  • 这些对象都可以在浏览器控制台里打印出来,可以看出它们多数是 function 类型,有一些如 Reflect 是 object 类型。

    Object
    Function
    Boolean
    Symbol
    Array
    Number
    Date
    String
    RegExp
    Map
    Set
    WeakMap
    WeakSet
    Promise
    Generator
    Reflect
    Proxy
    Error

内置对象(built-in object)

“由ECMAScript实现提供的,独立与宿主环境的所有对象,在ECMAScript程序开始执行时出现”。这意味着开发者不必明确实例化内置对象,它已经被实例化了。ECMA只定义了两个内置对象,即Global和Math(它们也是本地对象,根据定义,所有内置对象都是本地对象)。

在 JavaScript 中,所有的本地对象、全局属性、全局函数都是 Global 对象的属性。ECMAScript 虽然没有指出如何直接访问 Global 对象,但 Web 浏览器都是将这个全局对象作为 window 对象的一部分加以实现的。

Global
Math

宿主对象(host object)

所有非本地对象都是宿主对象,即由ECMAScript实现的宿主环境提供的对象。

所有的 BOM 和 DOM 对象都是宿主对象。JavaScript 中常用的宿主对象主要包括以下:

BOM 对象

window
location
navigator
screen
history

DOM 对象

Document
Body
Event
Form
Image
事件对象 event

用户自定义对象(user-defined object)

开发者通过 Js 代码创建的自己的对象。

狭义对象:

对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。(object)

函数:

函数是一段可以反复调用的代码块。函数还能接受输入的参数,不同的参数会返回不同的值。

函数也有属性和方法(name属性,length属性,toString方法),所以也是广义的对象。

数组:

是按次序排列的一组值。每个值的位置都有编号(从0开始),整个数组用方括号表示。也具有属性,本质是一种特殊的对象

你可能感兴趣的:(Js-对象)