JavaScript Guidebook

JavaScript 完全知识体系

Object

JavaScript 中的 Object 对象,是 JavaScript 中所有对象的基类,也就是说 JavaScript 中的所有对象都是由 Object 对象衍生的。Object 对象主要用于将任意数据封装成对象形式。

对象也可看做是属性的无序集合,每个属性都是一个名值对。属性名是字符串,因此我们可以把对象看成是从字符串到值的映射

语法

构造函数

new Object([value]);

对象类型转换函数

Object([value]);
参数说明类型
value可选参数,需要包装为对象的值any

Object() 将会根据参数 value 的数据类型,返回对应类型的对象:

  • 如果 value 为原始数据类型 Boolean、Number、String,则返回对应类型的对象,例如:Boolean 对象、Number 对象、String 对象。
  • 如果 value 本身为对象,则不对其作任何更改,返回其本身。
  • 如果省略了 value 参数,或 valuenullundefined,则返回自身无任何属性的 Object 对象。

Object() 的返回一个与给定值对应类型的对象。该对象包装了给定的参数。

构造函数

属性

  • Object.length:值为 1
  • Object.prototype:表示 Object 的原型对象

方法

原型对象

JavaScript 中的所有对象都来自 Object,所有对象从 Object.prototype 继承方法和属性,尽管它们可能被覆盖。

属性

  • Object.prototype.constructor:返回创建实例对象的 Object 构造函数的引用。注意,此属性的值是对函数本身的引用,而不是一个包含函数名称的字符串。该值为只读的原始类型,如 1true'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}

如果未指定参数,或参数为 nullundefined,则返回一个空对象。

var a = new Object();
console.log(a);
// {}
var b = new Object(undefined);
console.log(b);
// {}
var c = new Object(null);
console.log(c);
// {}