有很多,比如使用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