MST

星途 面试题库

面试题:JavaScript中如何检测对象是否可扩展

在JavaScript中,描述至少两种检测对象是否可扩展的方法,并给出相应的代码示例。
40.5万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 使用Object.isExtensible()方法
    • Object.isExtensible()方法判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)。
    • 代码示例:
    let obj1 = {};
    console.log(Object.isExtensible(obj1)); // true
    
    Object.preventExtensions(obj1);
    console.log(Object.isExtensible(obj1)); // false
    
  2. 通过尝试添加属性并检查是否成功
    • 尝试在对象上添加新属性,然后通过检查该属性是否存在来判断对象是否可扩展。如果对象不可扩展,添加属性操作将失败(严格模式下会抛出错误)。
    • 代码示例:
    'use strict';
    let obj2 = {};
    let canAdd = true;
    try {
        Object.preventExtensions(obj2);
        obj2.newProp = 'test';
    } catch (e) {
        canAdd = false;
    }
    console.log(canAdd? '对象可扩展' : '对象不可扩展');