MST

星途 面试题库

面试题:JavaScript中如何动态修改对象属性的可枚举性

在JavaScript里,假设有一个对象`obj = {name: 'John'}`,请使用`Object.defineProperty`方法,将`name`属性修改为不可枚举,并说明`Object.defineProperty`的各参数含义。
11.4万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 使用Object.definePropertyname属性修改为不可枚举的代码如下:
let obj = {name: 'John'};
Object.defineProperty(obj, 'name', {
    enumerable: false
});
  1. Object.defineProperty各参数含义:
    • 第一个参数:要在其上定义属性的对象,在上述例子中为obj
    • 第二个参数:要定义或修改的属性的名称,在上述例子中为name
    • 第三个参数:一个描述符对象,用来指定该属性的配置。其中enumerable属性表示该属性是否可枚举,设为false表示不可枚举,即使用for...in循环或Object.keys()等方法不会包含该属性。其他常见的描述符属性还有configurable(是否可配置,比如能否删除该属性等),writable(是否可写,即能否修改属性值)等。