一、JAVASCRIPT对象分类介绍
1.0、宿主对象(HOST OBJECTS)
由 JavaScript 宿主环境提供的对象,它们的行为完全由宿主环境决定。
1.1、内置对象(BUILT-IN OBJECTS)
由 JavaScript 语言提供的对象。
1.1.0、固有对象(INTRINSIC OBJECTS )
由标准规定,随着 JavaScript 运行时创建而自动创建的对象实例。
1.1.1、原生对象(NATIVE OBJECTS)
可以由用户通过 Array、RegExp 等内置构造器或者特殊语法创建的对象。
1.1.2、普通对象(ORDINARY OBJECTS)
由 {} 语法、Object 构造器或者 class 关键字定义类创建的对象,它能够被原型继承。
下面winter主要介绍了普通对象之外的对象原型(刚好都是我不太懂的,mark一下)
二、宿主对象
2.0、WINDOW对象
- 全局对象
window上的属性,一部分来自JavaScript语言,一部分来自浏览器环境 - 宿主也会提供一些构造器,比如使用
new Image来创建img元素
三、内置对象·固有对象
3.0、简单介绍
- 固有对象在任何 JS 代码执行前就已经被创建出来,类似基础库的角色
- ECMA 标准为我们提供了一份固有对象表,里面含有 150+ 个固有对象(链接打开比较慢,稍等一下就好)
3.1、小实验:获取全部 JAVASCRIPT 固有对象
3.1.0、三个值
Infinity、NaN、undefined
3.1.1、九个函数
eval、isFinite、isNaN、parseFloat、parseInt、decodeURI decodeURIComponent、encodeURI、encodeURIComponent
3.1.2、一些构造器
Array、Date、RegExp、Promise、Proxy、Map、WeakMap、Set、WeapSet、Function、Boolean、String、Number、Symbol、Object、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError URIError、ArrayBuffer、SharedArrayBuffer、DataView、Typed Array、Float32Array、Float64Array、Int8Array、Int16Array、Int32Array、UInt8Array、UInt16Array、UInt32Array、UInt8ClampedArray
3.1.3、四个用于当作命名空间的对象
Atomics、JSON、Math、Reflect
3.1.4、处理方法
1、winter的做法:使用广度优先搜索,查找这些对象所有的属性和 Getter/Setter,就可以获得 JavaScript 中所有的固有对象。
2、下面代码可以研究一下看看,new Set()不懂的可以看看MDN关于set的介绍,(我现在还没有看明白,我去不同网页打开运行输出set不一样,感觉有点懵逼_(:3」∠)_,理解的大佬可以留言告诉我,不胜感激)