Reflect.deleteProperty()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.

静态方法 Reflect.deleteProperty() 允许用于删除属性。它很像 delete operator ,但它是一个函数。

语法

Reflect.deleteProperty(target, propertyKey)

参数

target

删除属性的目标对象。

propertyKey

需要删除的属性的名称。

返回值

Boolean 值表明该属性是否被成功删除。

异常

抛出一个 TypeError,如果target不是 Object

描述

Reflect.deleteProperty 允许你删除一个对象上的属性。返回一个 Boolean 值表示该属性是否被成功删除。它几乎与非严格的 delete operator 相同。

示例

使用 Reflect.deleteProperty()

js
var obj = { x: 1, y: 2 };
Reflect.deleteProperty(obj, "x"); // true
obj; // { y: 2 }

var arr = [1, 2, 3, 4, 5];
Reflect.deleteProperty(arr, "3"); // true
arr; // [1, 2, 3, , 5]

// 如果属性不存在,返回 true
Reflect.deleteProperty({}, "foo"); // true

// 如果属性不可配置,返回 false
Reflect.deleteProperty(Object.freeze({ foo: 1 }), "foo"); // false

规范

Specification
ECMAScript Language Specification
# sec-reflect.deleteproperty

浏览器兼容性

BCD tables only load in the browser

参见