Object() 构造函数
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
Object()
构造函数将输入转换为一个对象。它的行为取决于输入的类型。
语法
js
new Object(value)
Object(value)
参数
value
-
任意值。
返回值
当调用或者构造 Object()
构造函数本身时,其返回值是一个对象:
- 如果该值是
null
或者undefined
,它会生成并返回一个空对象。 - 如果该值已经是一个对象,则返回该值。
- 否则,它将返回与给定值对应的类型的对象。例如,传递
BigInt
基本类型会返回一个BigInt
封装对象。
当通过继承 Object
的类的构造函数中的 super()
隐式调用 Object()
时,它以 new.target.prototype
为原型初始化一个新对象。传递给 super()
的任意值都将被忽略——例如,即使你传递一个数字,构造函数中的 this
值也不会变成 Number
实例。
示例
>创建一个新对象
js
const o = new Object();
o.foo = 42;
console.log(o);
// { foo: 42 }
使用 undefined 和 null 类型调用 Object
以下示例在 o
中存储一个空 Object
对象:
js
const o = new Object();
js
const o = new Object(undefined);
js
const o = new Object(null);
获取 BigInt 和 Symbol 的封装对象
当用 new
调用 BigInt()
和 Symbol()
构造函数时会抛出一个错误,以阻止创建封装对象而不是基本类型值的常见错误。为这些类型创建封装对象的唯一方法是使用它们调用 Object()
:
js
const numberObj = new Number(1);
console.log(typeof numberObj); // "object"
const bigintObj = Object(1n);
console.log(typeof bigintObj); // "object"
const symbolObj = Object(Symbol("foo"));
console.log(typeof symbolObj); // "object"
规范
Specification |
---|
ECMAScript® 2026 Language Specification> # sec-object-constructor> |
浏览器兼容性
Loading…