JavaScript 中的 Object
对象,是 JavaScript 中所有对象的基类,也就是说 JavaScript 中的所有对象都是由 Object 对象衍生的。Object 对象主要用于将任意数据封装成对象形式。
对象也可看做是属性的无序集合,每个属性都是一个名值对。属性名是字符串,因此我们可以把对象看成是从字符串到值的映射。
构造函数
new Object([value]);
对象类型转换函数
Object([value]);
参数 | 说明 | 类型 |
---|---|---|
value | 可选参数,需要包装为对象的值 | any |
Object()
将会根据参数 value
的数据类型,返回对应类型的对象:
value
为原始数据类型 Boolean、Number、String,则返回对应类型的对象,例如:Boolean 对象、Number 对象、String 对象。value
本身为对象,则不对其作任何更改,返回其本身。value
参数,或 value
为 null
、undefined
,则返回自身无任何属性的 Object 对象。Object()
的返回一个与给定值对应类型的对象。该对象包装了给定的参数。
Object.length
:值为 1Object.prototype
:表示 Object
的原型对象JavaScript 中的所有对象都来自 Object
,所有对象从 Object.prototype
继承方法和属性,尽管它们可能被覆盖。
Object.prototype.constructor
:返回创建实例对象的 Object 构造函数的引用。注意,此属性的值是对函数本身的引用,而不是一个包含函数名称的字符串。该值为只读的原始类型,如 1
、true
、'test'
Object.prototype.__proto__
:指向当对象被实例化的时候,用作原型的对象Object.prototype.__noSuchMethod
:当未定义的对象成员被调用作方法的时候,允许定义并执行的函数如果参数为原始数据类型,则返回对应类型的对象。
const a = new Object(true);console.log(a);// Boolean {true}var b = new Object(8);console.log(b);// Number {8}var c = new Object('string');console.log(c);// String {"string"}
如果参数自身就是对象(typeof
该参数返回 "object"
或 "function"
),则不对其作任何更改,返回其本身。
var a = new Object(Boolean());console.log(a);// Boolean{false}var b = new Object(Number());console.log(b);// Number{0}var c = new Object(String());console.log(c);// String{"", length: 0}
如果未指定参数,或参数为 null
或 undefined
,则返回一个空对象。
var a = new Object();console.log(a);// {}var b = new Object(undefined);console.log(b);// {}var c = new Object(null);console.log(c);// {}