1. 主页
  2. 文档
  3. 君土参考手册
  4. 标准内置对象
  5. 对象(Object)

对象(Object)

对象 构造函数创建一个对象包装器。

语法

// 对象初始化器(Object initialiser)或对象字面量(literal)
{ [ 名值对1[, 名值对2[, ...名值对N] ] ] }

// 以构造函数形式来调用
启 对象([值])

参数

名值对1, 名值对2, ... 名值对N 成对的名称(字符串)与值(任何值),其中名称通过冒号与值分隔。

任何值。

描述

对象 构造函数为给定值创建一个对象包装器。如果给定值是  或 ,将会创建并返回一个空对象,否则,将返回一个与给定值对应类型的对象。

当以非构造函数形式被调用时,对象 等同于 对象()

可查看 对象初始化/字面量语法。

Object 构造函数的属性

Object.length
值为 1。

Object.prototype
可以为所有 Object 类型的对象添加属性。

Object 构造函数的方法

对象.指定() – Object.assign()
通过复制一个或多个对象来创建一个新的对象。

对象.创建() – Object.create()
使用指定的原型对象和属性创建一个新对象。

对象.定义属性() – Object.defineProperty()
给对象添加一个属性并指定该属性的配置

对象.定义属性集() – Object.defineProperties()
给对象添加多个属性并分别指定它们的配置。

对象.条目() – Object.entries()
返回给定对象自身可枚举属性的 [key, value] 数组。

对象.冻结() – Object.freeze()
冻结对象:其他代码不能删除或更改任何属性。

对象.取自属性描述() – Object.getOwnPropertyDescriptor()
返回对象指定的属性配置。

对象.取自属性名() – Object.getOwnPropertyNames()
返回一个数组,它包含了指定对象所有的可枚举或不可枚举的属性名。

对象.取自属性符号集() – Object.getOwnPropertySymbols()
返回一个数组,它包含了指定对象自身所有的符号属性。

对象.取原型() – Object.getPrototypeOf()
返回指定对象的原型对象。

对象.是() – Object.is()
比较两个值是否相同。所有 NaN 值都相等(这与==和===不同)。

对象.可扩展() – Object.isExtensible()
判断对象是否可扩展。

对象.已冻结() – Object.isFrozen()
判断对象是否已经冻结。

对象.已密封() – Object.isSealed()
判断对象是否已经密封。

对象.键集() – Object.keys()
返回一个包含所有给定对象自身可枚举属性名称的数组。

对象.防止扩展() – Object.preventExtensions()
防止对象的任何扩展。

对象.密封() – Object.seal()
防止其他代码删除对象的属性。

对象.置原型() – Object.setPrototypeOf()
设置对象的原型(即内部 [[Prototype]] 属性)。

对象.值() – Object.values()
返回给定对象自身可枚举值的数组。

Object 实例和 Object 原型对象

土语中的所有对象都来自对象;所有对象从对象继承方法和属性,尽管它们可能被覆盖。例如,其他构造函数的原型将覆盖 constructor 属性并提供自己的 toString() 方法。Object 原型对象的更改将传播到所有对象,除非受到这些更改的属性和方法将沿原型链进一步覆盖。

属性

Object.prototype.constructor
特定的函数,用于创建一个对象的原型。

Object.prototype.__proto__ 
指向当对象被实例化的时候,用作原型的对象。

Object.prototype.__noSuchMethod__
 当未定义的对象成员被调用作方法的时候,允许定义并执行的函数。

Object.prototype.__count__
 用于直接返回用户定义的对象中可数的属性的数量。已被废除。

Object.prototype.__parent__
 用于指向对象的内容。已被废除。

方法

Object.prototype.__defineGetter__()  关联一个函数到一个属性。访问该函数时,执行该函数并返回其返回值。

Object.prototype.__defineSetter__()  关联一个函数到一个属性。设置该函数时,执行该修改属性的函数。

Object.prototype.__lookupGetter__()  返回使用 __defineGetter__ 定义的方法函数 。

Object.prototype.__lookupSetter__()  返回使用 __defineSetter__ 定义的方法函数。

有自属性() – Object.prototype.hasOwnProperty()
返回一个布尔值 ,表示某个对象是否含有指定的属性,而且此属性非原型链继承的。

是原型() – Object.prototype.isPrototypeOf()
返回一个布尔值,表示指定的对象是否在本对象的原型链中。

属性可枚举() – Object.prototype.propertyIsEnumerable()
判断指定属性是否可枚举,内部属性设置参见 ECMAScript [[Enumerable]] attribute 。

转代码() – Object.prototype.toSource()
返回字符串表示此对象的源代码形式,可以使用此字符串生成一个新的相同的对象。


转本地文() – Object.prototype.toLocaleString()
直接调用 本地文()方法。

转字() – Object.prototype.toString()
返回对象的字符串表示。

除监听() – Object.prototype.unwatch()
移除对象某个属性的监听。

原值() – Object.prototype.valueOf()
返回指定对象的原始值。

监听() – Object.prototype.watch()
给对象的某个属性增加监听。

Object.prototype.eval() 在指定对象为上下文情况下执行javascript字符串代码,已经废弃。

示例

给定 灭 和 空 类型使用 对象

下面的例子将一个空的 对象 对象存到 o 中:

定 o = 启 对象();
定 o = 启 对象(灭);
定 o = 启 对象(空);

使用 对象 生成布尔对象

下面的例子将两态 对象存到 o 中:

// 等价于 o = 启 两态(真);
定 o = 启 对象(真);
// 等价于 o = 启 两态(假);
定 o = 启 对象(两态());

原始MDN文档