Js-对象

对象

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开始),整个数组用方括号表示。也具有属性,本质是一种特殊的对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值