关键词

对象 删除 方法

JS中删除对象的方法

有很多,比如使用delete操作符,使用Object.defineProperty()方法,使用Object.assign()方法,使用Object.create()方法,使用Object.freeze()方法,使用Object.seal()方法,以及使用Object.keys()方法。

使用delete操作符:delete操作符是JS中最常用的删除对象的方法,它可以删除对象中的属性,也可以删除对象本身。使用方法如下:

let obj = {
    name: 'John',
    age: 20
};
delete obj.name;
console.log(obj); // { age: 20 }

使用Object.defineProperty()方法:Object.defineProperty()方法可以定义对象的属性,也可以删除对象的属性。使用方法如下:

let obj = {
    name: 'John',
    age: 20
};
Object.defineProperty(obj, 'name', {
    value: undefined,
    writable: true,
    enumerable: true,
    configurable: true
});
console.log(obj); // { age: 20 }

使用Object.assign()方法:Object.assign()方法可以将源对象的所有可枚举属性复制到目标对象中,同时也可以用来删除对象中的属性。使用方法如下:

let obj = {
    name: 'John',
    age: 20
};
let newObj = Object.assign({}, obj);
delete newObj.name;
console.log(newObj); // { age: 20 }

使用Object.create()方法:Object.create()方法可以创建一个新对象,它继承自指定的原型对象,同时也可以删除对象中的属性。使用方法如下:

let obj = {
    name: 'John',
    age: 20
};
let newObj = Object.create(obj);
delete newObj.name;
console.log(newObj); // { age: 20 }

使用Object.freeze()方法:Object.freeze()方法可以冻结一个对象,使其不可修改,同时也可以用来删除对象中的属性。使用方法如下:

let obj = {
    name: 'John',
    age: 20
};
Object.freeze(obj);
delete obj.name;
console.log(obj); // { name: 'John', age: 20 }

使用Object.seal()方法:Object.seal()方法可以密封一个对象,使其不可添加新的属性,同时也可以删除对象中的属性。使用方法如下:

let obj = {
    name: 'John',
    age: 20
};
Object.seal(obj);
delete obj.name;
console.log(obj); // { age: 20 }

使用Object.keys()方法:Object.keys()方法可以返回一个对象的所有可枚举属性,同时也可以用来删除对象中的属性。使用方法如下:

let obj = {
    name: 'John',
    age: 20
};
let keys = Object.keys(obj);
keys.forEach(key => {
    delete obj[key];
});
console.log(obj); // {}

有很多,上面介绍了几种常用的方法,使用时可以根据实际情况选择合适的方法。

本文链接:http://task.lmcjl.com/news/9470.html

展开阅读全文